Câu trả lời:
Tôi nghĩ rằng bạn muốn NUL, ít nhất là trong một dấu nhắc lệnh hoặc các tệp bó.
Ví dụ:
type c:\autoexec.bat > NUL
không tạo một tập tin.
(Tôi tin điều tương tự cũng đúng nếu bạn cố gắng tạo một tệp theo chương trình, nhưng tôi đã không thử nó.)
Trong PowerShell, bạn muốn $null:
echo 1 > $null
NUL:(và CON:, PRN:...), Nó chủ yếu là một vấn đề của phong cách và hiển thị rõ ràng rằng NUL:là một đối tượng đặc biệt và không phải là một tập tin gọi là NUL. Ngoài ra, có thể với một API đặc biệt để tạo một tệp có tên NUL(xem một trong các câu trả lời). Tôi mơ ước có thể một ngày nào đó, nếu mọi người sử dụng dấu hai chấm theo quy ước, chúng ta sẽ có thể loại bỏ các tên thiết bị đặc biệt đáng sợ :-)
Theo thông báo này trong danh sách gửi thư của GCC , bạn có thể sử dụng tệp "nul" thay vì / 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;
}
(Tín dụng cho Daniel cho mã này; sao chép từ tin nhắn của anh ấy.)
Bạn cũng có thể sử dụng tệp "nul" đặc biệt này thông qua chuyển hướng.
C:\devthư mục trong Windows và bạn sử dụng nhiều tiện ích GNU, cuối cùng bạn sẽ có được một tệp bí ẩn có tên null trong thư mục đó.
NULtrong Windows dường như thực sự là một đường dẫn ảo trong bất kỳ thư mục nào. Giống như .., .trong bất kỳ hệ thống tập tin.
Sử dụng bất kỳ thư mục theo sau với NUL sẽ hoạt động.
Thí dụ,
echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul
có tác dụng tương tự như /dev/nulltrên Linux.
Điều này đã được thử nghiệm trên Windows 7, 64 bit.
md \\.\c:\nul quora.com/ rủi , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/
nul
Jon Skeet là chính xác. Đây là trang Trình điều khiển thiết bị Nul trong tài liệu nhúng của Windows (Tôi không biết tại sao nó không ở đâu khác ...).
Đây là một:
NULlàm việc theo chương trình là tốt. Ví dụ như sau:
freopen("NUL", "w", stderr);
hoạt động như mong đợi mà không tạo tập tin. (MSVC ++ 12.0)
NUL, và nó đã qua thời điểm đó 5 năm trước.
Nếu bạn cần thực hiện trong Microsoft Windows, tương đương với một liên kết tượng trưng /dev/nulltrong Linux, bạn sẽ mở và quản trị viên cmdvà gõ:
Đối với tệp:
mklink c:\path\to\file.ext NUL:
Hoặc, cho các thư mục:
mklink /D c:\path\to\dir NUL:
Điều này sẽ giữ cho tập tin / direcotry luôn ở mức 0 byte và vẫn trả lại thành công cho mỗi lần ghi.
Bạn phải sử dụng start và $ NUL cho điều này trong Windows PowerShell :
Nhập vào lệnh này giả sử mySumlà tên của ứng dụng của bạn và 5 10là đối số dòng lệnh bạn đang gửi.
start .\mySum 5 10 > $NUL 2>&1
Các startlệnh sẽ bắt đầu một quá trình tách ra, một hiệu ứng tương tự như &. Các /Bngăn chặn tùy chọn bắt đầu từ việc mở một cửa sổ terminal mới nếu chương trình bạn đang chạy là một ứng dụng console. và NULtương đương với Windows /dev/null. Các 2>&1cuối cùng sẽ chuyển hướng stderr để stdout, mà tất cả sẽ đi đến NUL.