Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/types.h>
- #include <sys/ipc.h>
- #include <sys/shm.h>
- #include <errno.h>
- #include <string.h>
- #include <sys/sem.h>
- #include <stdio.h>
- #include <stdlib.h>
- struct sembuf buff = {0,0,0};
- // L identifiant du sémaphore et de la SHM sont passés en paramètres d'appel
- // =======================
- void psem(key_t cle)
- {
- buff.sem_op=-1;
- if(semop(cle,&buff,1)== -1)
- {perror(""); exit(-1) ;};
- }
- // =======================
- void vsem(key_t cle)
- {
- buff.sem_op=1;
- if(semop(cle,&buff,1)== -1)
- {perror(""); exit(-1);}
- }
- // =======================
- int main(int argc ,char ** argv)
- {
- int *ptr;
- key_t IDSEM1,IDSEM2,IDSHM;
- char choix='r';
- int i;
- //semaphore privé
- IDSEM2=(key_t)atoi(argv[1]);
- //shm
- IDSHM=(key_t)atoi(argv[2]);
- ptr=(int *)shmat(IDSHM,0,0);
- printf("\n ECRITURE dans LA SHM\n");
- printf("\nENTREZ UNE VALEUR:");
- scanf("%d",&i);
- *(ptr)=i;
- printf("\nLANCEMENT AUTORISATION DE LECTURE\n");
- // ======
- vsem(IDSEM2);
- // ======
- exit(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement