使用printf作为重入函数C

时间:2016-10-11 21:37:20

标签: c printf signals

我正在处理多个进程和信号,我昨天才发现printf不是一个可重入的函数,因此将信号处理程序与信号处理程序一起使用存在风险。我能做些什么吗?是否有任何可重入的printf或任何可重入的系统调用可以取代printf吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

信号处理程序通常非常棘手。因此非常棘手,通常唯一安全的操作就是设置一个标志“信号被接收”,然后让程序的主循环(或多线程应用程序中的特殊信号处理线程)做实际信号处理