Возможно, это не установлено? Откройте свой диспетчер пакетов и установите sudo пакет.
Да. Это имеет отношение ^D
действительно делает: это просто останавливает ток read(2)
звонить.
Если программа делает int rdbytes = read(fd, buffer, sizeof buffer);
и Вы нажимаете ^D
промежуток, read()
возвраты с в настоящее время байтами чтения в буфере, возвращая их число. То же происходит на линейном окончании; \n
в конце всегда поставляется.
Таким образом, только a ^D
в начале строки или за другим ^D
имеет желаемый эффект наличия read()
вернуть 0
, сигнализация EOF.
Да, это - нормальное поведение. Единственное Управление-D обычно только вспыхивает, если это - начало строки. Это выходит с одним Управлением-D:
$ cat > foo.txt
bar
baz
^D
\n
.. но возможно просто нажать^D
дважды по очереди, и причина условие EOF, не генерируя заключительный символ новой строки (как нажатие Enter перед^D
сделал бы). – Peter.O 21.08.2011, 10:03read()
вернуть0
, указание EOF. – glglgl 21.08.2011, 13:01