Ответы:
Я думаю, что вы хотите NUL
, по крайней мере, в командной строке или пакетных файлов.
Например:
type c:\autoexec.bat > NUL
не создает файл.
(Я верю, что то же самое верно, если вы пытаетесь создать файл программно, но я не пробовал.)
В PowerShell вы хотите $null
:
echo 1 > $null
NUL:
(и CON:
, PRN:
...), это в основном вопрос стиля и ясно показывает , что NUL:
это специальный объект , а не файл с именем NUL
. Кроме того, с помощью специального API можно создать файл с именем NUL
(см. Один из ответов). Я мечтаю, что, может быть, однажды, если все будут использовать двоеточие по соглашению, мы сможем осудить страшные имена специальных устройств :-)
Согласно этому сообщению в списке рассылки 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;
}
(Кредиты Дэнни за этот код; скопированы из его сообщения.)
Вы также можете использовать этот специальный файл "nul" через перенаправление.
C:\dev
каталог в Windows и используете много утилит GNU, вы в конечном итоге получите таинственный файл с именем null в этом каталоге.
NUL
в Windows, кажется, на самом деле виртуальный путь в любой папке. Так же , как ..
, .
в любой файловой системе.
Используйте любую папку с NUL будет работать.
Пример,
echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul
имеют тот же эффект, что и /dev/null
в Linux.
Это было проверено на Windows 7, 64 бит.
md \\.\c:\nul
quora.com/... , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/…
nul
Джон Скит прав. Вот страница Nul Device Driver в документации Windows Embedded (я понятия не имею, почему это не где-то еще ...).
Вот еще один:
NUL
работает программно, а также. Например, следующее:
freopen("NUL", "w", stderr);
работает как положено без создания файла. (MSVC ++ 12.0)
NUL
, и это было позади этого момента 5 лет назад.
Если вам нужно выполнить в Microsoft Windows эквивалент символической ссылки /dev/null
в Linux, которую вы откроете, cmd
введите администратор и введите:
Для файлов:
mklink c:\path\to\file.ext NUL:
Или для каталогов:
mklink /D c:\path\to\dir NUL:
Это будет держать файл / direcotry всегда в 0 байт, и все равно возвращать успех при каждой попытке записи.
Для этого вы должны использовать start и $ NUL в Windows PowerShell :
Введите эту команду, предполагая, что mySum
это имя вашего приложения и 5
10
аргументы командной строки, которые вы отправляете.
start .\mySum 5 10 > $NUL 2>&1
Команда start
запустит отдельный процесс, аналогичный эффекту &
. Эта /B
опция запрещает запуску открытия нового окна терминала, если запущенная программа является консольным приложением. и NUL
является эквивалентом Windows /dev/null
. The 2>&1
в конце перенаправит stderr в stdout, который все пойдет в NUL
.