#include "semafori.h" void initsem(int semid, int val) { if ((semctl(semid,0,SETVAL,val)) == -1) printf("\n Errore di inizializzazione semaforo\n"); } void valsem(int semid) { int valore = semctl(semid,0,GETVAL); printf("\n Valore semaforo :: %d \n",valore); } void delsem(int semid) { if ((semctl(semid,0,IPC_RMID,0)) == -1) printf("\n Errore di rimozione semaforo \n"); } void down(int semid, int n, int w) { struct sembuf comando; comando.sem_num = n; comando.sem_op = w; comando.sem_flg = 0; if (semop(semid,&comando,1) == -1) printf("\nErrore di wait sul semaforo %d\n",semid); } void up(int semid, int n, int w) {