printf非异步信号如何安全?

问题描述

我们知道printf不是异步信号安全功能。以下是我的基本理解:

假设我们在printf方法调用main,因此将内容写入stdio缓冲区,就在缓冲区刷新到文件之前,信号到达并且信号处理程序也调用{ {1}},第二个printf将其内容附加到缓冲区,现在缓冲区具有第一次调用和第二次调用内容,这是不一致的,这是不正确的,因此我们不能在其中使用非asyc安全函数信号处理程序。 我的理解正确吗?

如果我的理解是正确的,那么异步安全功能如何解决此问题?因为安全功能仍然需要处理缓冲区,所以缓冲区可能仍包含宝贵的调用的buff数据?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)