fork函数的输出问题
  • 板块学术版
  • 楼主flysky
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/11/3 23:02
  • 上次更新2023/11/4 01:28:56
查看原帖
fork函数的输出问题
313194
flysky楼主2021/11/3 23:02
#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.发生这种情况的原因是什么,为啥父进程比子进程先输出,有没有大佬能够帮帮忙解释一下,有点懵逼
2021/11/3 23:02
加载中...