ho fatto questo programma:
codice:
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>


#include <stdlib.h>
#include <stdio.h>

#define KEY 1901 


main()
{

int semid = semget(KEY, 2, IPC_CREAT | 0600);
semctl(semid, 0, SETVAL, 1);

struct sembuf cmd={0,-2,0};
semop(semid, &cmd,1); 

struct sembuf cmd2={0,1,0};
semop(semid, &cmd2,1);

int val = semctl(semid, 0, GETVAL, NULL);
printf("valore del semaforo in posizione 0: %d \n", val);

}
ma una volta che il processo è sospeso che si fa per risvegliarlo? non mi è tanto chiaro..