Problema con untilizzo corretto della wait()

di il
1 risposte

Problema con untilizzo corretto della wait()

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.

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte