进一步阅读

进一步阅读

当您从终端发送控制字符时,例如,如果您按Ctrl+C线路纪律将接收表示该控制字符的字节(在0x03的情况下Ctrl+C)。

现在代替线路纪律将字节发送0x03到与终端关联的程序,它将改为向其发送信号SIGINT(或者如果它是不同的控制字符,它将执行其他操作)。

现在有没有办法可以预防线路纪律从处理控制字符开始,所以我想要的是与终端关联的程序接收表示控制字符的实际字节(0x03在我们的例子中)。

答案1

在 Linux 上,你可以使用

$ stty intr undef

在相关终端上。这会将中断字符设置为空(“undef”)。要恢复你会使用

$ stty intr ^c

man stty详情请参阅。

答案2

不同的控制字符[...]控制字符

我注意到复数。您正在寻找非规范输入模式,在 POSIX 标准之前称为原始模式。这是使用 GNU Readline、ZLE 或 libedit 的应用程序采用的模式。他们的代码使用tcgetattr()cfmakeraw()tcsetattr()库函数或类似函数设置它。这些也是 的基础stty raw。 (stty sane如果你玩这个,请注意它的存在。)

进一步阅读

相关内容