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ì,
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);
e corretto ?
codice:
do {
while (turn != i) {
printf("1\n");
turn = 1-i;
printf("1\n"); }
} while(1);
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.....
Grazie in anticipo