Makefile presque en place

master
Philippe Pittoli 2011-03-17 16:25:02 +01:00
parent 04bdb3700f
commit bcea03f4ae
2 changed files with 49 additions and 40 deletions

View File

@ -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

View File

@ -11,12 +11,11 @@
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
int creat_sem(key_t cle,int val)
/* creation du semaphore cle ayant comme valeur initiale val /* creation du semaphore cle ayant comme valeur initiale val
retourne un identificateur de semaphore >=0 ou -1 si erreur retourne un identificateur de semaphore >=0 ou -1 si erreur
*/ */
int creat_sem(key_t cle,int val)
{ {
int semid; int semid;
@ -37,36 +36,27 @@ union semun{
/*--------------------------------------------------------------*/ /*--------------------------------------------------------------*/
int del_sem(key_t cle)
/* destruction du semaphore cle /* destruction du semaphore cle
retourne: retourne:
0 si la destruction du semaphore s est effectuee correctement 0 si la destruction du semaphore s est effectuee correctement
-1 si erreur -1 si erreur
*/ */
int del_sem(key_t cle)
{ {
return(semctl((semget(cle,0,0)),0,IPC_RMID,0)); return(semctl((semget(cle,0,0)),0,IPC_RMID,0));
} }
/*---------------------------------------------------------------*/
int open_sem(key_t cle)
/* recherche le semaphore cle /* recherche le semaphore cle
retourne l'identificateur du semaphore >=0 ou -1 si erreur 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) void P(int semid)
{ {
struct sembuf psembuf; struct sembuf psembuf;
@ -76,10 +66,7 @@ psembuf.sem_num = 0;
semop(semid,&psembuf,1); semop(semid,&psembuf,1);
} }
/*------------------------------------------------------------------*/
void V(int semid) void V(int semid)
{ {
struct sembuf vsembuf; struct sembuf vsembuf;
@ -89,5 +76,3 @@ vsembuf.sem_num = 0;
semop(semid,&vsembuf,1); semop(semid,&vsembuf,1);
} }
/*--------------------------------------------------------------*/