Ciao a tutti, questo é il primo post che pubblico, spero di essere nella sezione giusta.
Devo inizialmete creare N processi, ognuno dei quali deve inizializzare una struttura dati, e deve poi attendere, prima di iniziare ad eseguire il suo codice, che tutti gli altri processi abbiano inizializzato le loro strutture.
Non riesco a capire come utilizzare nel modo corretto la wait(). Allego di seguito il codice:
void gestore_Crea_Casette (unsigned long num){
for(int i = 1; i <= num; i++){
pid_t cas = fork();
if(cas < 0){
printf("Errore nella creazione della casetta");
exit(-1);
}else if(cas == 0){
casa casetta;
casetta.indirizzo = (unsigned long)getpid();
casetta.num_finestre = gen_Finestre((unsigned int)getpid());
printf("indirizzo: %d, finestre: %d\n", casetta.indirizzo, casetta.num_finestre);
//exit(0);
}else{
pid = wait(NULL);
}
}
}
Se non termino il processo (con la exit(0) commentata) continuo a crearne all'infinito.