Witam
Treść zadania przedstawia się następująco:
Napisz program, który oprócz procesu macierzystego tworzy trzy procesy potomne. Każdy proces powinien wyświetlać swój numer (1-3) oraz identyfikator losową ilość razy (max 5) w odstępie jednej sekundy. Program napisz w jednym pliku.
Kod:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main(int argc, char* argv[]) {
pid_t pp, pm;
int i,j,max;
pm = getpid();
for(i=1; i<4; i++) {
max = (rand()%5)+1;
pp = fork();
if (pp==0) {
for(j=0; j<max; j++) {
printf("Jestem procesem %u: posiadajacym id: %u", i, getpid());
sleep(1);
}
} else {
printf("%u: macierzysty, potomny to %u\n", pm, pp);
}
}
return 0;
}
A zrzut ekranu z wyniku działania tego programiku
http://img511.imageshack.us/img511/6844/zrzutee0.jpg
Dlaczego proces macierzysty utworzył tyle procesów potomnych??
I dlaczego tak pieprzy się kolejność procesów w pętli:/?
Pozdrawiam