文件结尾 VS 包含零的字节

文件结尾 VS 包含零的字节

我当时只是在捣鼓系统,想学习如何扩展交换内存。然后我了解到了/dev/zero。它被称为的兄弟/dev/null(我在某处读到过)。

然后我就跑了man zero

描述说,

       Reads  from /dev/null always return end of file (i.e., read(2) returns 0), whereas reads from /dev/zero always return bytes contain‐
   ing zero ('\0' characters).

该文件末尾和包含零的字节之间有什么区别?它们不是一回事吗?

答案1

也许你混淆了“零字节”一词的两种用法

  • 字节数(零)(/dev/null)
  • 字节数(非零),价值为零(/dev/zero)

最好用一个例子来说明这种差异:

正在读取/dev/zero

$ dd if=/dev/zero bs=8 count=1 | od
1+0 records in
1+0 records out
0000000 000000 000000 000000 000000
8 bytes copied, 0.000207568 s, 38.5 kB/s0000010

返回 ASCII 值为零的字节流 (“空字节”); 而尝试读取/dev/null

$ dd if=/dev/null bs=8 count=1 | od
0+0 records in
0+0 records out
0000000
0 bytes copied, 0.000168108 s, 0.0 kB/s

返回 0 字节。

相关内容