我正在处理多个进程和信号,我昨天刚刚发现printf不是一个可重入函数,所以在信号处理程序中使用它有风险。我能做点什么吗?是否有printf的重入变量或任何可替换printf的重入系统调用?
谢谢!

最佳答案

一般来说,信号处理程序非常复杂。非常棘手的是,在它们内部通常唯一安全的操作是设置一个标志“signal was received”,然后让程序的主循环(或在多线程应用程序中,一个特殊的信号处理线程)执行实际的信号处理。

09-20 07:27