读书人

请问一个关于wait(),以及父进程子进程

发布时间: 2012-03-23 12:06:21 作者: rapoo

请教一个关于wait(),以及父进程子进程的问题
代码:wait.c
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/wait.h>
int main()
{sleep(30);
return 0;
}


编译:gcc wait.c
执行:./a.out
OK,30秒内bash不听使唤了~
后台运行:./a.out & 这时bash还可以执行其他的任务。
我的疑问也来了,不管是前台执行还是后台执行,这个a.out的父进程都是bash,那照理说子进程在sleep,父进程就应该不能执行啊,那这个所谓的“后台运行 &”到底对进程做了什么呢?为什么后台执行时,正在sleep的子进程的父进程就可以动,而前台执行时,正在sleep的子进程的父进程就不能动?谢谢。。

[解决办法]
不是问号是句号,打错了
[解决办法]
./a.out &为后台执行,终端控制权重新交给bash,所以bash不会等待阻塞。

读书人网 >C语言

热点推荐