Відповіді:
Я думаю, ви хочете 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;
}
(Подяку Денні за цей код; копіювання - вклеєне з його повідомлення.)
Ви також можете використовувати цей спеціальний "нуль" файл через перенаправлення.
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 у документації до вбудованої Windows (я не маю поняття, чому це не десь інше ...).
Ось ще:
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 байт і все одно поверне успіх кожній спробі запису.
Для цього в Windows PowerShell потрібно використовувати старт і $ NUL :
Введіть цю команду, припускаючи, що mySum
це назва вашої програми, і 5
10
це аргументи командного рядка, які ви надсилаєте.
start .\mySum 5 10 > $NUL 2>&1
start
Команда запустить дистанційний процес, такий же ефект &
. Ця /B
опція не дозволяє відкрити нове вікно терміналу, якщо програма, яку ви запускаєте, є консольною програмою. і NUL
є еквівалентом Windows /dev/null
. В 2>&1
кінці буде переспрямовано stderr на stdout, до якого всі підуть NUL
.