标签: c printf signals
我正在处理多个进程和信号,我昨天才发现printf不是一个可重入的函数,因此将信号处理程序与信号处理程序一起使用存在风险。我能做些什么吗?是否有任何可重入的printf或任何可重入的系统调用可以取代printf吗?
谢谢!
答案 0 :(得分:4)
信号处理程序通常非常棘手。因此非常棘手,通常唯一安全的操作就是设置一个标志“信号被接收”,然后让程序的主循环(或多线程应用程序中的特殊信号处理线程)做实际信号处理