#include #include #include #include #include #include #include #include "description.h" #include "opSem.h" /* procIPC.c */ int main(void) { key_t sem_cle, shm_cle; int sem_id, shm_id; data *shmAdr; sem_cle = ftok("SEMAPHORE",100); if (sem_cle==-1) { perror("ftok"); exit(EXIT_FAILURE); } sem_id = semget(sem_cle, SEMNBR, 0); if (sem_id==-1) { perror("semget"); exit(EXIT_FAILURE); } shm_cle = ftok("MEMOIRE",100); if (shm_cle==-1) { perror("ftok"); exit(EXIT_FAILURE); } shm_id = shmget(shm_cle,sizeof(data), 0); if (shm_id==-1) { perror("shmget"); exit(EXIT_FAILURE); } shmAdr = (data*)shmat(shm_id,NULL,0); if (shmAdr==(data*)-1) { perror("shmat"); exit(EXIT_FAILURE); } P(sem_id,MUTEX); system("less livre"); shmAdr->lastPid = getpid(); shmAdr->nbAccess++; V(sem_id,MUTEX); shmdt(shmAdr); return 0; }