Sto iniziando ad usare i semafori in c,vorrei creare una situazione di questo tipo
ho un incrocio dove ho 20 auto che arrivano da 2 direzioni (facciamo 10 e 10 )e si devono immettere in una nuova strada,e vorrei farne passare 5 da una direzione,tutte e 10 le altre e poi finire le 5
Ho iniziato così,
e corretto ?codice:#include "semfun.h" #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> #define true 1 main() { int semid,semid2,val,val2,n,n2; semid = semget(IPC_PRIVATE,1,0600); if (semid == -1) perror("Errore"); printf("Id semaforo: %d\n",semid); seminit(semid,0,0); val = semctl(semid,0,GETVAL); if (val==-1) perror("Errore lettura"); printf("Valore semaforo %d: %d\n",semid,val);
proseguirei con una cosa di questo genere,sui turni,ma ho bisogno di consigli su come impostarlo,soprattutto a livello di cicli,spero qualcuno abbia tempo.....codice:do { while (turn != i) { printf("1\n"); turn = 1-i; printf("1\n"); } } while(1);
Grazie in anticipo

Rispondi quotando