Tengo un proceso abriendo un archivo en el modo de agregar. En este caso, es un archivo de registro. Código de ejemplo:¿Se pueden agregar procesos múltiples a un archivo usando fopen sin ningún problema de simultaneidad?
int main(int argc, char **argv) {
FILE *f;
f = fopen("log.txt", "a");
fprintf(f, "log entry line");
fclose(f);
}
Dos preguntas:
- Si tengo varios procesos anexas al mismo archivo, aparecerá claramente cada línea de registro o que puede ser entrelazado como el cambio de contexto procesos?
- ¿Escribirá este bloque si muchos procesos requieren acceso al archivo, por lo tanto, causa problemas de concurrencia?
Estoy considerando hacer esto en su versión más simple o usar zeromq para bombear las entradas de registro sobre las tuberías a un colector de registros.
Considero syslog pero realmente no quiero ninguna dependencia de la plataforma en el software.
La plataforma predeterminada es Linux para este btw.
Gracias - eso es justo lo que quería saber. El agregado múltiple de Windows es lo que me preocupaba un poco. – Deleted