我想打印readline读取的每个字符。 目前,我可以在完全阅读之后将所有内容打印出来。 这是针对正在编写的shell。
答案 0 :(得分:0)
readline()是一个阻塞函数,等待一个完整的行。
只需在循环中使用read()即可。如果没有新字符,read()将返回0,如果存在字符,它将返回1(如果自上次调用read()以来n个字符在stdin中,则返回n,并且提供足够大的缓冲区)。 通常,标准输入具有为其保留的文件描述符0,因此您的代码可能如下:
char buf[1];
int i;
while(1) {
i = read(0, buf, 1);
if (i>0)
{
// process character
}
}