diff --git a/C_Language/TP_SYS/tp_sema/Makefile b/C_Language/TP_SYS/tp_sema/Makefile index 501e702..3875731 100644 --- a/C_Language/TP_SYS/tp_sema/Makefile +++ b/C_Language/TP_SYS/tp_sema/Makefile @@ -1,5 +1,4 @@ -C = gcc -SER = server +CC = gcc CONS = consommateur PROD = producteur CFLAGS = -Wall -g @@ -8,12 +7,12 @@ CONSOM = consommateur.o PRODUCT = producteur.o all: $(CONSOM) $(PRODUCT) $(CC) $(CONSOM) -o $(CONS) - $(CC) $(PRODUCT) -o $(SER) + $(CC) $(PRODUCT) -o $(PROD) -consommateur.o : consommateur.h consommateur.c +consommateur.o : consommateur.c consommateur.h $(CC) -o $@ -c $< $(CFLAGS) -producteur.o : producteur.h producteur.c +producteur.o : producteur.c producteur.h $(CC) -o $@ -c $< $(CFLAGS) sema.o : sema.h sema.c @@ -22,5 +21,5 @@ sema.o : sema.h sema.c clean: @rm -rf *.o *.out mrproper: clean - @rm $(PROD) $(CONS) 2>/dev/null + rm $(PROD) $(CONS) 2>/dev/null diff --git a/C_Language/TP_SYS/tp_sema/consommateur.c b/C_Language/TP_SYS/tp_sema/consommateur.c new file mode 100644 index 0000000..c825dc2 --- /dev/null +++ b/C_Language/TP_SYS/tp_sema/consommateur.c @@ -0,0 +1,10 @@ +#include +#include +#include + +int main( int argc, char **argv) +{ + + exit(EXIT_SUCCESS); +} + diff --git a/C_Language/TP_SYS/tp_sema/consommateur.h b/C_Language/TP_SYS/tp_sema/consommateur.h new file mode 100644 index 0000000..d58a003 --- /dev/null +++ b/C_Language/TP_SYS/tp_sema/consommateur.h @@ -0,0 +1 @@ +int main(int,char **); diff --git a/C_Language/TP_SYS/tp_sema/global.c b/C_Language/TP_SYS/tp_sema/global.c new file mode 100644 index 0000000..d3fdec4 --- /dev/null +++ b/C_Language/TP_SYS/tp_sema/global.c @@ -0,0 +1 @@ +int compteur; diff --git a/C_Language/TP_SYS/tp_sema/producteur.c b/C_Language/TP_SYS/tp_sema/producteur.c new file mode 100644 index 0000000..8681e9e --- /dev/null +++ b/C_Language/TP_SYS/tp_sema/producteur.c @@ -0,0 +1,29 @@ +#include +#include +#include +#include +#include +#include +#include "sema.h" + +int main( int argc, char **argv) +{ + if(argc < 3) { printf("Usage %s numIPC message\n", argv[0]); exit(EXIT_FAILURE); } + int *zone; + int memid; + int clef = atoi(argv[1]); + if(clef == -1) { printf("Usage %s numIPC message\n", argv[0]); exit(EXIT_FAILURE); } + +/* création ou lien avec une zone partagée */ + memid = shmget(clef, 100, 0700 | IPC_CREAT); + if (memid == -1) { perror("shmget"); return (EXIT_FAILURE); } + +/* montage en mémoire */ + zone = shmat(memid, NULL, 0); + +/* utilisation */ + printf("zone[0] = %d\n", zone[0]++ ); + + return (EXIT_SUCCESS); + +} diff --git a/C_Language/TP_SYS/tp_sema/producteur.h b/C_Language/TP_SYS/tp_sema/producteur.h new file mode 100644 index 0000000..6ccb8cf --- /dev/null +++ b/C_Language/TP_SYS/tp_sema/producteur.h @@ -0,0 +1 @@ +int main(int, char**);