Manugal
02-12-2006, 18:01
Ciao a tutti!!
Sto cercando di capire il meccanismo della fork(). Allora mi viene chiesto di fare un programmino che esegue una fork, rimane in attesa che il figlio stampi un messaggio a video con successo e stampa un altro messaggio prima di uscire. Io ho scritto questo:
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
pid_t pid;
int status;
if((pid = fork()) < 0)
perror("Fork failed");
else if(pid == 0){
printf("Sono il figlio e sto scrivendo qualcosa su stdout\n");
exit(0);
}
else{
if(wait(&status) != pid)
perror("Wait failed");
printf("Mio figlio ha finito, quindi finisco pure io\n");
exit(0);
}
}
Faccio partire il programma ma non stampa nulla. Se lo faccio partire con gdb invece stampa. Perché? :confused:
Grazie.
Sto cercando di capire il meccanismo della fork(). Allora mi viene chiesto di fare un programmino che esegue una fork, rimane in attesa che il figlio stampi un messaggio a video con successo e stampa un altro messaggio prima di uscire. Io ho scritto questo:
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
pid_t pid;
int status;
if((pid = fork()) < 0)
perror("Fork failed");
else if(pid == 0){
printf("Sono il figlio e sto scrivendo qualcosa su stdout\n");
exit(0);
}
else{
if(wait(&status) != pid)
perror("Wait failed");
printf("Mio figlio ha finito, quindi finisco pure io\n");
exit(0);
}
}
Faccio partire il programma ma non stampa nulla. Se lo faccio partire con gdb invece stampa. Perché? :confused:
Grazie.