Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172639
  • 博文数量: 33
  • 博客积分: 731
  • 博客等级: 上士
  • 技术积分: 757
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-02 22:51
文章存档

2018年(1)

2017年(2)

2013年(1)

2012年(29)

我的朋友

分类: LINUX

2012-09-04 17:16:31

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) |
给主人留下些什么吧!~~