当进程正在等待某些用户输入时,如果按下^ c,则会向执行该进程的操作系统发出信号。但是,当该进程是bash / python解释器时,不会发生同样的情况。 echo ^ c也会在控制台上打印一些东西,所以我假设它是一个有效的unicode字符。
那么,一些字符输入如何被重定向到输入流中以供该进程使用,一些字符输入被用作信号。在哪里决定,使用什么预定义的配置,以及何时设置这些配置值?
答案 0 :(得分:1)
你偶然发现了TTY layer的神奇世界。
TL; DR是使用管道(例如文件或其他cmd管道传输到stdin)和控制台连接到stdin之间的区别。控制台的线路规则是劫持^ C字符(这只是一个普通的8位字符)并向前台进程组发送信号。