wait.c(代码):
#include
#include
#include
#include
void main()
{
pid_t pc,pr;
pc=fork();
if(pc==0)/*******如果是子进程***************/
{
printf("This is child process with pid of %d\n",getpid());
sleep(10);/******睡眠10秒钟************/
}
if(pc>0) /**********如果是父进程************/
{
pr=wait(NULL);/*************等待******/
printf("I catched a child process with pid of %d\n",getpid());
}
}
执行fork命令之后,如果fork的返回值是0,就是运行子进程的if语句,紧接着打印This is child process with pid of。。。,然后进入睡眠10秒钟,在这10秒钟,子进程是进入休眠状态,CPU 空闲,所以这10秒是父进程在使用CPU,由程序可以知道,父进程进入了if(pc>0)的if语句中,然后等待进入等待,等待10秒后,子进程醒过来,释放CPU,然后父进程使用CPU打印:I catched a child .................两条打印语句是先打印上面这条,再打印下面的那条。
阅读(517) | 评论(0) | 转发(0) |