Является ли fprintf поточно-ориентированным? Руководство glibc , кажется, говорит, что это так, но мое приложение, которое записывает в файл с помощью одного вызова fprintf (), похоже, смешивает частичные записи из разных процессов.
edit: Чтобы уточнить, речь идет о плагине lighttpd , и сервер работает с несколькими рабочими потоками.
Глядя на файл, некоторые записи перемешаны.
edit 2: Кажется, что проблема, которую я вижу, может быть связана с тем, что «рабочие потоки» lighttpd на самом деле являются отдельными процессами: http://redmine.lighttpd.net/wiki/lighttpd/Docs:MultiProcessor
Проблемы
Запустив 2 или более процессов на
та же розетка у тебя будет лучше
параллелизм, но будет иметь несколько
недостатки, которые вы должны знать
из:
- mod_accesslog может создавать поврежденные журналы доступа, так как один и тот же файл открывается дважды и НЕ синхронизируется.
- mod_status будет иметь n отдельных счетчиков, один набор для каждого
процесс.
- mod_rrdtool завершится с ошибкой, поскольку он дважды получит одну и ту же метку времени.
- mod_uploadprogress не будет отображать правильный статус.