Problème [Ecriture dans un fichier par plusieurs processus]
Bonjour,
voila j'ai une application qui declare des threads. Ces derniers ecrivent dans un fichier toutes leurs sorties (detournement du flux stdout)
Tout marche bien mais parfois j'ai le problème suivant:
Thread 1 tente d'ecrire la chaine suivante: "Couleur : rouge\0\n"
Thread 2 tente d'ecrire la chaine suivante: "largeur: 10cm\0\n"
Et au lieu d'avoir dans le fichier:
Couleur : rouge
largeur: 10cm
J'ai plutot:
Coulargeur: 10cm
leur : rouge
On comprends bien que le thread 1 n' pas eu le temps d'écrire et que le thread 2 a ecrit entre temps.
Pourtant j'ai mis les buffers à 0 'setBuf(stdout, 0)' en espérant que la chaine soit écrite directement sans attente...
Je n'ai pas trop d'idée sur le sujet...
Merci de m'éclairer...
PS: Je travaille sous .NET, en C, et utilise entre autres les primitives fopen, fread, fwrite etc...
Encore merci.
Re: Problème [Ecriture dans un fichier par plusieurs process
Citation:
Envoyé par MonsieurAk
Bonjour,
voila j'ai une application qui declare des threads. Ces derniers ecrivent dans un fichier toutes leurs sorties (detournement du flux stdout)
Tout marche bien mais parfois j'ai le problème suivant:
Thread 1 tente d'ecrire la chaine suivante: "Couleur : rouge\0\n"
Thread 2 tente d'ecrire la chaine suivante: "largeur: 10cm\0\n"
Et au lieu d'avoir dans le fichier:
Couleur : rouge
largeur: 10cm
J'ai plutot:
Coulargeur: 10cm
leur : rouge
On comprends bien que le thread 1 n' pas eu le temps d'écrire et que le thread 2 a ecrit entre temps.
http://emmanuel-delahaye.developpez.com/pthreads.htm