我正在学习与 合作fork()
,我有一些问题。
考虑以下代码:
#include <stdio.h>
#include <unistd.h>
int main()
{
int i;
for(i = 0; i < 5; i++)
{
printf("%d", i);
if((i%2)==0)
if(fork())
fork();
}
}
当我输出到终端时,我得到了我期望的结果(即:)0,1,1,1,2,2,2,...
。但是当我输出到文件时,结果完全不同:
案例1:(输出到终端,例如:)
./a.out
:结果是:
0,1,1,1,2,2,2,...
案例2:(输出到文件,例如
./a.out > output_file
:)结果是:
0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,...
为什么会这样?