From 13119a2d533b25d7ecb3cbd29f7a791d21d2c907 Mon Sep 17 00:00:00 2001 From: Philippe Pittoli Date: Sat, 19 Mar 2011 12:29:52 +0100 Subject: [PATCH] Moins de bugs --- C_Language/TP_SYS/tp_sema/Makefile | 21 ++++++++--------- C_Language/TP_SYS/tp_sema/consommateur.c | 29 +++++++++++++++++++++--- C_Language/TP_SYS/tp_sema/consommateur.h | 1 + C_Language/TP_SYS/tp_sema/sema.c | 2 ++ C_Language/TP_SYS/tp_sema/sema.h | 12 +--------- 5 files changed, 39 insertions(+), 26 deletions(-) diff --git a/C_Language/TP_SYS/tp_sema/Makefile b/C_Language/TP_SYS/tp_sema/Makefile index 8c9978d..81b662e 100644 --- a/C_Language/TP_SYS/tp_sema/Makefile +++ b/C_Language/TP_SYS/tp_sema/Makefile @@ -3,24 +3,21 @@ CONS = consommateur PROD = producteur CFLAGS = -Wall -g COMMUN = sema.o global.o -CONSOM = consommateur.o -PRODUCT = producteur.o -all: $(COMMUN) $(CONSOM) $(PRODUCT) - $(CC) $(CONSOM) -o $(CONS) - $(CC) $(PRODUCT) -o $(PROD) +all: $(COMMUN) consommateur.o producteur.o + $(CC) consommateur.o -o $(CONS) sema.o + $(CC) producteur.o -o $(PROD) sema.o -consommateur.o : consommateur.c consommateur.h constantes.h types.h - $(CC) -o $@ -c $< $(CFLAGS) - -producteur.o : producteur.c producteur.h constantes.h types.h - $(CC) -o $@ -c $< $(CFLAGS) - -sema.o : sema.h sema.c +sema.o : sema.c sema.h $(CC) -o $@ -c $< $(CFLAGS) global.o : global.c $(CC) -o $@ -c $< $(CFLAGS) +consommateur.o : consommateur.c consommateur.h constantes.h types.h sema.h + $(CC) -o $@ -c $< $(CFLAGS) + +producteur.o : producteur.c producteur.h constantes.h types.h sema.h + $(CC) -o $@ -c $< $(CFLAGS) clean: @rm -rf *.o *.out diff --git a/C_Language/TP_SYS/tp_sema/consommateur.c b/C_Language/TP_SYS/tp_sema/consommateur.c index 1a18344..b60c493 100644 --- a/C_Language/TP_SYS/tp_sema/consommateur.c +++ b/C_Language/TP_SYS/tp_sema/consommateur.c @@ -1,15 +1,38 @@ #include #include #include -#include "constantes.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include "consommateur.h" #include "types.h" +#include "sema.h" +#include "constantes.h" int main( int argc, char **argv) { - if(argc < 2) { printf("Usage : %s numIPC\n"); exit(EXIT_FAILURE); } + if(argc < 2) { printf("Usage : %s numIPC\n", argv[0]); exit(EXIT_FAILURE); } - int clef = atoi(argv[1]); + key_t clef = (key_t) atoi(argv[1]); + + MEMP memoireP; + memoireP.tete = 0; + memoireP.queue = 0; + + int semid; + semid = creat_sem( clef, MAX_PROD); + if(semid >= 0) + { + + sleep(10); + del_sem(clef); + } exit(EXIT_SUCCESS); } diff --git a/C_Language/TP_SYS/tp_sema/consommateur.h b/C_Language/TP_SYS/tp_sema/consommateur.h index d58a003..99d1648 100644 --- a/C_Language/TP_SYS/tp_sema/consommateur.h +++ b/C_Language/TP_SYS/tp_sema/consommateur.h @@ -1 +1,2 @@ +#include "sema.h" int main(int,char **); diff --git a/C_Language/TP_SYS/tp_sema/sema.c b/C_Language/TP_SYS/tp_sema/sema.c index ace738d..8a9e123 100644 --- a/C_Language/TP_SYS/tp_sema/sema.c +++ b/C_Language/TP_SYS/tp_sema/sema.c @@ -8,6 +8,8 @@ #include #include #include +#include "sema.h" + int creat_sem(key_t cle,int val) { int semid; diff --git a/C_Language/TP_SYS/tp_sema/sema.h b/C_Language/TP_SYS/tp_sema/sema.h index d16a200..d0b4689 100644 --- a/C_Language/TP_SYS/tp_sema/sema.h +++ b/C_Language/TP_SYS/tp_sema/sema.h @@ -1,13 +1,3 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include void erreur(char *s); int open_sem(key_t cle); @@ -16,7 +6,7 @@ void V(int semid); /*-----------------------------------------------------------*/ -int creat_sem(key_t cle, ushort val); +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 */