diff --git a/C_Language/TP_SYS/tp_sema/consommateur.c b/C_Language/TP_SYS/tp_sema/consommateur.c index 88aed06..c5eb28a 100644 --- a/C_Language/TP_SYS/tp_sema/consommateur.c +++ b/C_Language/TP_SYS/tp_sema/consommateur.c @@ -8,5 +8,6 @@ int main( int argc, char **argv) { exit(EXIT_SUCCESS); + return -1; } diff --git a/C_Language/TP_SYS/tp_sema/sema.c b/C_Language/TP_SYS/tp_sema/sema.c index 9e17cf3..ace738d 100644 --- a/C_Language/TP_SYS/tp_sema/sema.c +++ b/C_Language/TP_SYS/tp_sema/sema.c @@ -8,13 +8,6 @@ #include #include #include - -/*-----------------------------------------------------------*/ - -/* 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; @@ -33,24 +26,10 @@ int creat_sem(key_t cle,int val) } return(semid); } - -/*--------------------------------------------------------------*/ - -/* 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)); } - -/* 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)); diff --git a/C_Language/TP_SYS/tp_sema/sema.h b/C_Language/TP_SYS/tp_sema/sema.h index 4735d97..d16a200 100644 --- a/C_Language/TP_SYS/tp_sema/sema.h +++ b/C_Language/TP_SYS/tp_sema/sema.h @@ -10,9 +10,30 @@ #include void erreur(char *s); -int creat_sem(key_t cle, ushort val); -int del_sem(key_t cle); int open_sem(key_t cle); void P(int semid); void V(int semid); +/*-----------------------------------------------------------*/ + +int creat_sem(key_t cle, ushort val); +/* creation du semaphore cle ayant comme valeur initiale val + retourne un identificateur de semaphore >=0 ou -1 si erreur +*/ + +/*--------------------------------------------------------------*/ + +int del_sem(key_t cle); +/* destruction du semaphore cle + retourne: + 0 si la destruction du semaphore s est effectuee correctement + -1 si erreur +*/ + +/* recherche le semaphore cle + retourne l'identificateur du semaphore >=0 ou -1 si erreur +*/ + + + + diff --git a/C_Language/TP_SYS/tp_sema/types.h b/C_Language/TP_SYS/tp_sema/types.h index 764cb68..85fc1e5 100644 --- a/C_Language/TP_SYS/tp_sema/types.h +++ b/C_Language/TP_SYS/tp_sema/types.h @@ -1,19 +1,19 @@ #include "constantes.h" -typedef MEMP // Structure de sémaphore +typedef struct msg_s +{ + char c; // caractère émi + int idp; // indice du producteur +} MSG; +typedef struct memp_s // Structure de sémaphore { int max_prod; int tete; int queue; int tpa[MAX_PROD]; // -1 de tpa[i] alors libre, 0 sinon MSG f[MAX_BUF]; // Buffer stockant les caractères émis par les différents producteurs -} +} MEMP; // Arrêt sur ^D du consommateur, arrêt de tous les IPC et on s'arrête // du producteur, arrêt des IPC, met à jour le tableau à -1 sur sa case et il s'arrête -typedef struct MSG -{ - char c; // caractère émi - int idp; // indice du producteur -}