/dev/null в Windows?

Что эквивалентно /dev/null в Windows?

Ответ 1

Я думаю, вы хотите NUL, по крайней мере, в командной строке или командных файлах.

Например:

type c:\autoexec.bat > NUL

не создает файл.

(Я считаю, что это верно, если вы пытаетесь создать файл программно, но я не пробовал его.)

В PowerShell вы хотите $null:

echo 1 > $null

Ответ 2

В соответствии с этим сообщением в списке рассылки GCC вы можете использовать файл "nul" вместо /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;
}

(Кредиты для Danny для этого кода, скопировано из его сообщения.)

Вы также можете использовать этот специальный файл "nul" через перенаправление.

Ответ 4

NUL в окнах кажется фактически виртуальным путем в любой папке. Точно так же, как .., . в любой файловой системе.

использовать любую папку, за которой следует NUL, будет работать

ex:

echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul

имеют тот же эффект, что и /dev/null в linux

тест на windows 7, 64 бит

Ответ 5

NUL работает также программно. Например. следующее:

freopen("NUL", "w", stderr);

работает так, как ожидалось, без создания файла. (MSVС++ 12.0)