#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<sys/wait.h>
void main (void)
{
int x=5;
if(fork()){
x+=30;
printf("%d\n",x);
}
else printf("%d\n",x);
printf("%d\n",x);
sleep(1);
}
- 代码的输出结果为35 35 5 5 .输出固定。关于fork函数,创建子进程,进程的调度由操作系统决定,没有固定的顺序,为什么该程序会固定输出,如果最后的sleep删去,则输出结果为35 35然后跳出进程,再输出5 5.发生这种情况的原因是什么,为啥父进程比子进程先输出,有没有大佬能够帮帮忙解释一下,有点懵逼