nikpez di nikpez
Ominide 738 punti

Programma C - Semaforo

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <stdio.h>

/* IDENTIFICATORE DEL SEMAFORO */
#define SEM_NUMBER 2012

int main()
{
int id;

union semun {
int val;
struct semid_ds *buf;
ushort * array;
} argument;

argument.val = 0;

/* int semget(SEM_NUMBER_t SEM_NUMBER, int nsems, int semflg); */
/* CREATO 1 SEMAFORO CON CHIAVE SEM_NUMBER */
id = semget(SEM_NUMBER, 1, 0666 | IPC_CREAT);

if(id < 0)
{
fprintf(stderr, "Impossibile attivare il semaforo.\n");
return 1;
}

/* int semctl(int semid, int semnum, int cmd, ...); */

if( semctl(id, 0, SETVAL, argument) < 0)
{
fprintf( stderr, "Impossibile settare il valore 0 nel semaforo.\n");
}
else
{
fprintf(stderr, "Semaforo %d inizializzato.\n", SEM_NUMBER);
}

return 0;
}

Registrati via email