Сегодня меня озадачили проблемой, которой не смог найти объяснение. Итак, имею следующий код:
#include <stdio.h>
#include <unistd.h>
void f(){
puts("fork");
fork();
}
int main ( int argc, char ** argv ){
int i;
for( i=0; i<2; i++ ){
f();
puts(".");
}
}
при исполнении кода ожидаю увидеть 3 форка и 6 точек, что собственно и имею:
fork
.
fork
.
fork
.
.
.
.
fork.fork.fork.fork.fork.fork.fork.fork.
gcc 4.6.1