From bcea03f4aef0737e060daaabfe2c7b1551cfbca2 Mon Sep 17 00:00:00 2001 From: Philippe Pittoli Date: Thu, 17 Mar 2011 16:25:02 +0100 Subject: [PATCH] Makefile presque en place --- C_Language/TP_SYS/tp_sema/Makefile | 26 +++++++++++- C_Language/TP_SYS/tp_sema/sema.c | 63 ++++++++++++------------------ 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/C_Language/TP_SYS/tp_sema/Makefile b/C_Language/TP_SYS/tp_sema/Makefile index 9c3e5bf..501e702 100644 --- a/C_Language/TP_SYS/tp_sema/Makefile +++ b/C_Language/TP_SYS/tp_sema/Makefile @@ -1,2 +1,26 @@ -CC=gcc +C = gcc +SER = server +CONS = consommateur +PROD = producteur +CFLAGS = -Wall -g +COMMUN = sema.o global.o +CONSOM = consommateur.o +PRODUCT = producteur.o +all: $(CONSOM) $(PRODUCT) + $(CC) $(CONSOM) -o $(CONS) + $(CC) $(PRODUCT) -o $(SER) + +consommateur.o : consommateur.h consommateur.c + $(CC) -o $@ -c $< $(CFLAGS) + +producteur.o : producteur.h producteur.c + $(CC) -o $@ -c $< $(CFLAGS) + +sema.o : sema.h sema.c + $(CC) -o $@ -c $< $(CFLAGS) + +clean: + @rm -rf *.o *.out +mrproper: clean + @rm $(PROD) $(CONS) 2>/dev/null diff --git a/C_Language/TP_SYS/tp_sema/sema.c b/C_Language/TP_SYS/tp_sema/sema.c index 0459ab0..9e17cf3 100644 --- a/C_Language/TP_SYS/tp_sema/sema.c +++ b/C_Language/TP_SYS/tp_sema/sema.c @@ -11,83 +11,68 @@ /*-----------------------------------------------------------*/ -int creat_sem(key_t cle,int val) - /* creation du semaphore cle ayant comme valeur initiale val retourne un identificateur de semaphore >=0 ou -1 si erreur */ +int creat_sem(key_t cle,int val) { -int semid; + int semid; -union semun{ - int val; - struct semid_ds *buf; - ushort *array; + union semun{ + int val; + struct semid_ds *buf; + ushort *array; } arg; if((semid=semget(cle,1,0666+IPC_CREAT+IPC_EXCL))>= 0) { - arg.val=val; - if(semctl(semid,0,SETVAL,arg)< 0) - semid = -1; + arg.val=val; + if(semctl(semid,0,SETVAL,arg)< 0) + semid = -1; } return(semid); } /*--------------------------------------------------------------*/ -int del_sem(key_t cle) - /* destruction du semaphore cle retourne: 0 si la destruction du semaphore s est effectuee correctement -1 si erreur */ + +int del_sem(key_t cle) { - return(semctl((semget(cle,0,0)),0,IPC_RMID,0)); - } -/*---------------------------------------------------------------*/ - -int open_sem(key_t cle) - /* recherche le semaphore cle retourne l'identificateur du semaphore >=0 ou -1 si erreur */ + +int open_sem(key_t cle) { - -return(semget(cle,0,0)); - + return(semget(cle,0,0)); } -/*----------------------------------------------------------------*/ - void P(int semid) - { -struct sembuf psembuf; + struct sembuf psembuf; -psembuf.sem_op = -1; -psembuf.sem_flg = 0; -psembuf.sem_num = 0; -semop(semid,&psembuf,1); + psembuf.sem_op = -1; + psembuf.sem_flg = 0; + psembuf.sem_num = 0; + semop(semid,&psembuf,1); } -/*------------------------------------------------------------------*/ - void V(int semid) - { -struct sembuf vsembuf; + struct sembuf vsembuf; -vsembuf.sem_op = 1; -vsembuf.sem_flg = 0; -vsembuf.sem_num = 0; -semop(semid,&vsembuf,1); + vsembuf.sem_op = 1; + vsembuf.sem_flg = 0; + vsembuf.sem_num = 0; + semop(semid,&vsembuf,1); } -/*--------------------------------------------------------------*/ -