Чтение l oop не прекращается - PullRequest
0 голосов
/ 02 апреля 2020

Кажется, я не могу завершить чтение l oop.

#include <unistd.h>
char buffer[256];
int read_chars;
while((read_chars = read(STDIN_FILENO,buffer,sizeof(buffer))) > 0) { 
  //DO STUFF
} 

Однако, когда я нажимаю ввод в терминале, он просто зависает при следующем чтении и никогда не завершается.

Есть мысли по поводу этой реализации не правильно?

1 Ответ

1 голос
/ 02 апреля 2020

Здесь read прекратит чтение в конце стандартного ввода, что не является переводом строки. Попробуйте выполнить Ctrl-D дважды в своем терминале, пока программа читает, и она должна завершиться. Ctrl-D один раз в пустой строке или два раза после того, как некоторые символы отмечают конец стандартного ввода.

...