gpt4 book ai didi

c - 谁回显终端中的字符?

转载 作者:行者123 更新时间:2023-12-02 05:17:58 25 4
gpt4 key购买 nike

让我们看下面的代码:

int main(void)
{
char c;

while ((c = getchar()) != EOF)
putchar(c);

return (0);
}

此程序仅在换行作为字符传递后才回显字符。我尝试使用 read 系统调用直接读取并将 len 作为 1 传递,它仍然只在传递新行时读取。我在这里有两个问题:谁实现了这个优化,是内核还是终端/shell?

其次,谁在第一时间回显字符,即第一次按下时。 terminal/shell 在这个程序的整个执行过程中有什么作用吗?

最佳答案

外壳是无关紧要的。您键入的 tty(假设它不是原始模式,并且启用了回显)在您键入时显示字符,但在您键入回车之前不会将它们传递给进程。它处理所有退格和编辑等,而您的过程永远不会看到这些。当您按下回车键时,tty 会将输入的行传递给进程。

关于c - 谁回显终端中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14325933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com