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