c-读取循环不会终止



我似乎无法终止这个读取循环。

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

然而,当我在终端中点击enter时,它只是挂起等待下一次读取,并且永远不会退出。

对这个实施有什么不正确的想法吗?

这里read将在标准输入结束时停止读取,而换行符则不是。当程序正在读取时,尝试在您的终端中执行两次Ctrl-D,它应该会终止。Ctrl-D在空行上一次或在某些字符后两次标志着标准输入的结束。

最新更新