¿Es fprintf seguro para subprocesos? The glibc manual parece decir que sí, pero mi aplicación, que escribe en un archivo usando una sola llamada a fprintf(), parece estar entremezclando escrituras parciales de diferentes procesos.¿La implementación de glibc de fprintf() es segura para subprocesos?
editar: Para aclarar, el programa en cuestión es un complemento lighttpd, y el servidor se está ejecutando con varios subprocesos de trabajo.
Al mirar el archivo, algunas de las escrituras se entremezclan.
editar 2: Parece que el problema que estoy viendo que podría deberse a "subprocesos de trabajo" de lighttpd en realidad son procesos separados: http://redmine.lighttpd.net/wiki/lighttpd/Docs:MultiProcessor
Problemas
Mediante la ejecución de 2 o más procesos en el mismo socket tendrá una mejor concurrencia , pero tendrá algunos inconvenientes que debe tener en cuenta de:
- mod_accesslog podría crear registros de acceso rotos, ya que el mismo archivo se abre dos veces y NO está sincronizado.
- mod_status tendrá n contadores separados, un conjunto para cada proceso .
- mod_rrdtool fallará ya que recibe la misma marca de tiempo dos veces.
- mod_uploadprogress no mostrará el estado correcto.
¿Está observando esto en un archivo que escribe con 'fprintf', o lo está observando en las corrientes' stdout' y 'stderr'? –