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.
Partager