Есть ли / dev / null в Windows?

321

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

Теги:

5 ответов

413
Лучший ответ

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

Например:

type c:\autoexec.bat > NUL

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

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

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

echo 1 > $null
  • 1
    @Jim: Интересно - я не знал, что вы можете писать в пути из / dev / null, как если бы это был каталог. Хм.
  • 0
    В Ubuntu: echo blah> /dev/null.txt bash: /dev/null.txt: В доступе отказано Возможно, это что-то специфическое для вашей системы ...
Показать ещё 14 комментариев
52

В соответствии с этим сообщением в списке рассылки 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" через перенаправление.

  • 0
    Это объясняет, почему, если вы создаете каталог C:\dev в Windows и используете много утилит GNU, вы в конечном итоге получите таинственный файл с именем null в этом каталоге.
27

Джон Скит прав. Вот страница Nul Device Driver в документах Windows Embedded (я понятия не имею, почему это не где-то еще...) HEre - это еще один

  • 66
    Конечно, Джон Скит прав. Спасибо, что изложили очевидную и универсальную правду :)
25

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 бит

  • 7
    Хорошо, невозможно создать файл с именем "nul" в Windows 7 64bit :)
  • 4
    @DawidFerenczy это возможно, хотя и не классическим способом. Например, md \\.\c:\nul quora.com/… , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/…
Показать ещё 1 комментарий
2

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

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

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

  • 1
    Есть только очень много раз, когда на этот вопрос нужно ответить с помощью NUL , и это было уже 5 лет назад.
  • 3
    Я думаю, что этот ответ добавляет весомый вклад в обсуждение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню