Odpowiedzi:
Myślę, że chcesz NUL
, przynajmniej w wierszu polecenia lub plikach wsadowych.
Na przykład:
type c:\autoexec.bat > NUL
nie tworzy pliku.
( Wierzę , że to samo jest prawdą, jeśli próbujesz utworzyć plik programowo, ale nie próbowałem tego.)
W PowerShell chcesz $null
:
echo 1 > $null
NUL:
(i CON:
, PRN:
...), Jest to głównie kwestia stylu i wyraźnie pokazuje, że NUL:
jest to specjalny obiekt, a nie plik o nazwie NUL
. Możliwe jest także, dzięki specjalnemu API, utworzenie pliku o nazwie NUL
(patrz jedna z odpowiedzi). Marzę, że może któregoś dnia, jeśli wszyscy użyją okrężnicy zgodnie z konwencją, będziemy mogli przestać bać się przerażających nazw specjalnych urządzeń :-)
Zgodnie z tą wiadomością na liście mailingowej GCC , możesz użyć pliku „nul” zamiast / dev / null:
#include <stdio.h>
int main ()
{
FILE* outfile = fopen ("/dev/null", "w");
if (outfile == NULL)
{
fputs ("could not open '/dev/null'", stderr);
}
outfile = fopen ("nul", "w");
if (outfile == NULL)
{
fputs ("could not open 'nul'", stderr);
}
return 0;
}
(Podziękowania dla Danny'ego za ten kod; skopiowano z jego wiadomości).
Możesz również użyć tego specjalnego pliku „nul” poprzez przekierowanie.
C:\dev
katalog w systemie Windows i użyjesz wielu narzędzi GNU, w końcu uzyskasz w tym katalogu tajemniczy plik o nazwie null.
NUL
w systemie Windows wydaje się być wirtualną ścieżką w dowolnym folderze. Podobnie jak ..
, .
w każdym systemie.
Użyj dowolnego folderu z NUL będzie działać.
Przykład,
echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul
mają taki sam efekt jak /dev/null
w Linuksie.
Zostało to przetestowane w systemie Windows 7, 64-bitowym.
md \\.\c:\nul
Quora.com/… , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/…
nul
Jon Skeet ma rację. Oto strona sterownika urządzenia Nul w dokumentacji Windows Embedded (nie mam pojęcia, dlaczego nie ma go gdzie indziej ...).
Oto kolejna:
NUL
działa również programowo. Np. Następujące:
freopen("NUL", "w", stderr);
działa zgodnie z oczekiwaniami bez tworzenia pliku. (MSVC ++ 12.0)
NUL
, a minęło już to 5 lat temu.
Jeśli chcesz wykonać w systemie Microsoft Windows odpowiednik dowiązania symbolicznego do /dev/null
linuksa, otwórz go cmd
i wpisz administrator :
Dla plików:
mklink c:\path\to\file.ext NUL:
Lub w przypadku katalogów:
mklink /D c:\path\to\dir NUL:
Dzięki temu plik / direcotry zawsze będzie miał 0 bajtów i nadal zwróci sukces przy każdej próbie zapisu.
Musisz użyć do tego start i $ NUL w Windows PowerShell :
Wpisz to polecenie, zakładając, że mySum
jest to nazwa aplikacji i 5
10
są to argumenty wiersza poleceń, które wysyłasz.
start .\mySum 5 10 > $NUL 2>&1
start
Polecenie rozpoczęcia odłączoną procesu, podobny do efektu &
. Ta /B
opcja uniemożliwia rozpoczęcie otwierania nowego okna terminala, jeśli uruchomiony program jest aplikacją konsolową. i NUL
jest odpowiednikiem systemu Windows /dev/null
. Na 2>&1
końcu przekieruje stderr na stdout, do którego wszyscy pójdą NUL
.