У меня проблема с форком в моей системе с этой программой:
# include <assert.h>
# include <stdio.h>
# include <stdlib.h>
# include <unistd.h>
# include <sys/stat.h>
# include <sys/types.h>
# include <fcntl.h>
# include <sys/wait.h>
# include <string.h>
int main()
{
int i;
for( i=0; i<5;i++)
{
fork();
printf("getpid():%i",getpid());
for( i=0; i<10;i++)
{
printf("%i\t",i);
}
}
return 0;
}
Я бы хотел, чтобы он несколько раз форкнулся и сделал секунду для l oop в каждом дочернем форке. Но первое «для» l oop, кажется, блокируется при первом процессе ветвления.
Я получаю только этот вывод:
getpid():45200 1 2 3 4 5 6 7 8 9getpid():45210 1 2 3 4 5 6 7 8 9
Вместо всех других выходных данных, которые обычно должны быть напечатано детьми, если они правильно выполнили второе «для» l oop.