ok, ho provato con i semafori POSIX a fare il seguente nonchè stupido programmino:
codice:
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/syscall.h>
#include <semaphore.h>
#include <stdint.h>

#define MAXNUM 1000

sem_t sem;

int main(){
	
	sem_init(&sem,1,1);
	
	int pid;
	int count;
	int j;
	count=0;
	for(j=0;j<=1;j++){
		pid=fork();
		if(pid==0){/*figlo*/
			int ID=j;
			for (j=0;j<MAXNUM;j++) {
					sem_wait(&sem);	 
					count++;
					sem_post(&sem);
			}
			printf("Numero raggiunto da %d: %d", j,count); 
			exit(1);
		}
	}
}
ma mi da i seguenti errori in compilazione:

codice:
/tmp/ccpuI6kr.o: nella funzione "main":
semafori.c: (.text+0x1d): riferimento non definito a "SEM_INIT"
semafori.c: (.text+0x54): riferimento non definito a "sem_wait"
semafori.c: (.text+0x62): riferimento non definito a "sem_post"
collect2: error: ld returned 1 exit status
cosa c'è che non va?