// Bs1ueb5.c -- Copyright 2005 by Matthias Jauernig #include #include #include #include #include int main(void){ int i, status; pid_t pid = fork(); switch(pid){ case -1: perror("fork"); exit(1); break; case 0: printf("Child -> Meine PID: %d\n",(int)getpid()); printf(" -> Parent-PID: %d\n\n",(int)getppid()); for(i=0; i<10000000; i++){ if(i%1000000 == 0) printf("Child -Zaehler: %d\n",i); } break; default: printf("Parent -> Meine PID: %d\n",(int)getpid()); for(i=0; i<5000000; i++){ if(i%1000000 == 0) printf("Parent-Zaehler: %d\n",i); } pid = wait(&status); // im höheren Byte steht Exit-Status, im niedrigeren die Signalnummer if(status>255) status>>=8; printf("Child beendet: %d, Status: %d\n",(int)pid,status); break; } exit(1); }