在信号处理程序中恢复终端设置(termios)

时间:2016-10-21 05:53:34

标签: linux terminal signal-handling termios

在更改终端设置的代码中(它嵌入了python,后者又使用了一些终端操作模块),在我通过Ctrl- \发送SIGQUIT到进程后退出后,更改后的状态仍然存在。

在启动时保存终端设置是否安全,然后注册将恢复这些设置的SIGQUIT处理程序?如果不安全,最坏的情况会发生什么?

1 个答案:

答案 0 :(得分:0)

信号处理程序通常应该是精益的,而不需要做太多工作。你不应该从信号处理程序中调用非异步安全函数。 Async-signal-safe functions。因此,如果您的termios代码包含非AS函数,则不建议从信号处理程序恢复终端设置(尽管您将处理SIGQUIT)

这个怎么样:

execv在{{1}}的手册页中列为AS安全。为什么不分叉子进程,{{1}}另一个将恢复设置的程序?