让我们看看下面的代码:
int main(void)
{
char c;
while ((c = getchar()) != EOF)
putchar(c);
return (0);
}
该程序仅在将新行作为字符传递后才回显字符。我尝试使用 read 系统调用直接读取并将 len 作为 1 传递,它仍然只在传递新行时读取。我这里有两个问题:谁实现了这个优化,是内核还是终端/shell?
其次,谁在第一时间回响这些字符,也就是在第一次印刷本身。终端/shell 在该程序的整个执行过程中是否起任何作用?