конец файла байты 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).

Каково различие между этим концом файла и байтами, содержащими нуль? Разве они не то же самое?

0
задан 3 August 2017 в 13:51

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 байтов.

2
ответ дан 2 November 2019 в 20:32

Другие вопросы по тегам:

Похожие вопросы: