Gestion sémaphores

Fermé
dijoamed Messages postés 2 Date d'inscription mardi 22 novembre 2016 Statut Membre Dernière intervention 18 décembre 2016 - Modifié par Judge_DT le 18/12/2016 à 21:00
bonjour ,
lors d'exécution de ce programme c sur linux
le résultat d'affichage est " opération p" 4 fois et non pas 10 fois , pourquoi ?! merci d'avance :)
voila mon code :
#include<stdio.h> 
#include<sys/sem.h> 
void P(int semid) { 
struct sembuf op; 
op.sem_num=0;op.sem_op=-1;op.sem_flg=0; 
semop(semid,&op,1); 
} 
void V(int semid) { 
struct sembuf op; 
op.sem_num=0;op.sem_op=1;op.sem_flg=0; 
semop(semid,&op,1); 
} 
void Z(int semid) { 
struct sembuf op; 
op.sem_num=0;op.sem_op=0;op.sem_flg=0; 
semop(semid,&op,1); 
} 
void init (int semid,int E) 
{ 
semctl(semid,0,SETVAL ,E); 
} 
int main () { 
int i,semid; 
int val=4; 
semid=semget(42,1,IPC_CREAT|0666); 
init (semid,val); 
for (i=1;i<10;i++) { 
P(semid); 
printf ("opération p\n"); 
} 
return 0; 
}
.