我似乎无法终止这个读取循环。
#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
在空行上一次或在某些字符后两次标志着标准输入的结束。