#include #include #include #include #include #include "opSem.h" /* opSem.c */ #define Pval -1 #define Vval 1 #define Zval 0 void semaphore (int sem_id, int sem_num, int op) { struct sembuf Ops[1]; int ok; Ops[0].sem_num = sem_num; Ops[0].sem_op = op; Ops[0].sem_flg = 0; ok = semop(sem_id, Ops, 1); if (ok==-1) { perror("semop"); exit(EXIT_FAILURE); } } void P(int sem_id, int sem_num) { semaphore (sem_id, sem_num, Pval); } void V(int sem_id, int sem_num) { semaphore (sem_id, sem_num, Vval); } void Z(int sem_id, int sem_num) { semaphore (sem_id, sem_num, Zval); }