本文介绍了是的glibc的实现fprintf中()的线程安全?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
fprintf中是线程安全的? 似乎说是,但我的应用程序,它采用单调用fprintf中()似乎是从交织不同的进程部分写入写入一个文件。
编辑:澄清,问题的程序是插件,服务器与多个工作线程运行。 p>
看文件,有些写的是混合在一起。
编辑2:看来我看到的可能是由于lighttpd的的工作线程实际上是独立的进程问题:http://redmine.lighttpd.net/wiki/lighttpd/Docs:MultiProcessor
解决方案
You're confusing two concepts - writing from multiple threads and writing from multiple processes.
Inside a process its possible to ensure that one invocation of fprintf is completed before the next is allowed access to the output buffer, but once your app pumps that output to a file you're at the mercy of the OS. Without some kind of OS based locking mechanism you cant ensure that an entirely different application doesnt write to your log file.
这篇关于是的glibc的实现fprintf中()的线程安全?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!