【发布时间】:2020-06-16 14:00:34
【问题描述】:
我用fork写了一个偶数和奇数的程序,它有时打印偶数,有时打印奇数。请解释这个问题?
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
int i;
if(fork() == 0)
{
for(i=1;i<50;i++)
if(i%2 == 0)
printf("even %d\n",i);
}
else
{
for(i=1;i<50;i++)
if(i%2 != 0)
printf("odd %d\n",i);
}
}
我得到如下输出: 奇数 1 奇数 3 奇数 5 奇数 7 奇数 9 奇数 11 奇数 13 奇数 15 奇数 17 奇数 19 奇数 21 奇数 23 奇数 25 甚至 2 奇数 27 甚至 4 奇数 29 甚至 6 奇数 31 甚至 8 奇数 33 甚至 10 奇数 35 甚至 12 奇数 37 甚至 14 奇数 39 甚至 16 奇数 41 甚至 18 奇数 43 甚至 20 奇数 45 甚至 22 奇数 47 甚至 24 奇数 49 甚至 26 甚至 28 甚至 30 甚至 32 甚至 34 甚至 36 甚至 38 甚至40 甚至 42 甚至 44 甚至 46 甚至 48
【问题讨论】:
-
你想要的输出是什么?
-
子打印一个东西,父打印另一个。你到底有什么不明白的?
-
据我所知,偶数组(最多 50 个)打印,奇数组后最多打印 50 个。@Andrea Pollini