我有一个简单的代码来测试fork()
功能。
#include<stdio.h>
#include<unistd.h>
#define MAX_COUNT 10
void main(void)
{
pid_t pid;
int i;
fork();
pid = getpid();
for(i = 1; i <= MAX_COUNT; i++)
{
printf("PID = %d, i = %d\n", pid, i);
}
}
它没有像我预期的那样工作。
我的期望是:父母的结果和孩子的结果交替出现。
有人可以解释一下这个问题并教我如何解决它吗?谢谢!
PID = 3663, i = 1
PID = 3663, i = 2
PID = 3663, i = 3
PID = 3663, i = 4
PID = 3663, i = 5
PID = 3663, i = 6
PID = 3663, i = 7
PID = 3663, i = 8
PID = 3663, i = 9
PID = 3663, i = 10
PID = 3664, i = 1
PID = 3664, i = 2
PID = 3664, i = 3
PID = 3664, i = 4
PID = 3664, i = 5
PID = 3664, i = 6
PID = 3664, i = 7
PID = 3664, i = 8
PID = 3664, i = 9
PID = 3664, i = 10