Ciao a tutti sfutto questo che è il mio primo post per presentarmi, mi chiamo Massimo ho 20 anni e frequento il primo anno di ingegneria delle telecomunicazioni presso il Politecnico di Milano
Il mio piccolo grande problema è, ho questo codice :
int main(int argc, char * argv[])
{
pid_t * v, son;
int status, inorder;
int n, i;
n = atoi(argv[1]);
if(v = (pid_t *)malloc(sizeof(pid_t)*n)){
for(i = 0; i < n; i++){
*(v+i) = fork();
if(*(v+i) == 0){
sleep(2);
exit(0);
}
}
inorder = 1;
for(i = 0; i < n; i++){
son = wait(&status);
if(son != *(v+i))
inorder = 0;
}
printf("%d\n", inorder);
} else
printf("ERRORE: impossibile allocare memoria per %d dati", n);
return 0;
}
vorrei sapere quando il programma visualizza 1 ? è possibile che questa condizione non si verifichi mai ? a quanti processi d`a luogo questo programma (incluso il processo “principale”) quando l’utente lo esegue con la chiamata prog 5 ?
Grazie a tutti