écritures concurrentes dans un fichier
salut à vous,
est ce que c'est sûr d'avoir deux threads qui écrivent concurrement dans un même fichier si le fichier est protégé par un mutex?
par exemple
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
char * p1_id = "proc1";
char * p2_id = "proc2";
FILE * f = fopen("data", "a");
pthread_mutex_t lock;
void p1() {
pthread_mutex_lock(&lock);
fwrite(p1_id, 5, 1, f);
pthread_mutex_unlock(&lock);
}
void p2() {
pthread_mutex_lock(&lock);
fwrite(p2_id, 5, 1, f);
pthread_mutex_unlock(&lock);
} |
p1 et p2 sont appelées par deux processus différents. est ce que c'est correct?
merci