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?