Fichier d’un consommateur
- ///////////////////////////////////////
- // Fichier d’un consommateur
- //////////////////////////////////////
- extern int *ouvrir_zone(char *, int);
- extern int ouvrir_sema(char *, int);
-
- #define NBCASES 10
- char * mutex_C = "sema.c" ;
- char * mutex_R = "sema.r" ;
- char * mutex_W = "sema.w";
- char * indtampon = "cle.cle" ;
- char * indsortie = "out.out";
-
- int mutexC, mutexR, mutexW ;
- int taille = NBCASES * sizeof(int); // taille du buffer
- int * tampon,* out ;
- int i;
- int main ()
- {
- printf("Bonjour, je suis un des concommateurs !!\n") ;
-
- tampon = ouvrir_zone(indtampon, taille);
- out = ouvrir_zone(indsortie, sizeof(int));
-
- mutexW = ouvrir_sema(mutex_W, 0);
- mutexR = ouvrir_sema(mutex_R, 0);
- mutexC = ouvrir_sema(mutex_C, 0);
-
- // corps de consommation
- while (1)
- { p(mutexC);
- p(mutexR);
- i= tampon[*out] ;
- *out = (*out+1) % (taille /sizeof(int));
- v(mutexW);
- v(mutexC);
- printf(" cons %d\n", i) ;
- }
- return 0 ;
- }
|