在更改终端设置的代码中(它嵌入了python,后者又使用了一些终端操作模块),在我通过Ctrl- \发送SIGQUIT到进程后退出后,更改后的状态仍然存在。
在启动时保存终端设置是否安全,然后注册将恢复这些设置的SIGQUIT处理程序?如果不安全,最坏的情况会发生什么?
答案 0 :(得分:0)
信号处理程序通常应该是精益的,而不需要做太多工作。你不应该从信号处理程序中调用非异步安全函数。 Async-signal-safe functions。因此,如果您的termios代码包含非AS函数,则不建议从信号处理程序恢复终端设置(尽管您将处理SIGQUIT)
这个怎么样:
execv
在{{1}}的手册页中列为AS安全。为什么不分叉子进程,{{1}}另一个将恢复设置的程序?