zoukankan      html  css  js  c++  java
  • 如何测试Linux 中的wait函数能不能等待子进程的子进程?

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
      pid_t pid = fork();
      switch(pid)
        {
        case -1:
          perror("fork failed");
          exit(1);
        case 0:
          {
           pid = fork();
           if(pid == -1)
           {
           perror("fork failed");
           exit(1);
           }
           else if(pid == 0)
           {
           sleep(2);
           printf("第三个进程pid为:%d
    ", getpid());
           sync();
           exit(0);
           }
          else
          {
          sleep(10);
          printf("第二个进程收到%d
    ", wait(NULL));
          exit(0);
          }
         }
        default:
          printf("第一个进程pid为:%d
    ", getpid()); //返回当前进程的标识符
          printf("第二个进程pid为:%d
    ", pid);
          printf("第一个进程收到%d
    ", wait(NULL));
          printf("第一个进程收到%d
    ", wait(NULL));
          sync();
          break;
       }
      return 0;
    }

    [root@linux Desktop]# gcc b.c
    [root@linux Desktop]# ./a.out
    第一个进程pid为:3038
    第二个进程pid为:3039 //等待大概两秒后输出第三行
    第三个进程pid为:3040 //等待大概10秒后输出下面的
    第二个进程收到3040
    第一个进程收到3039
    第一个进程收到-1      //注意看这儿
    [root@linux Desktop]# 

    Linux API 中的wait函数能不能等待子进程的子进程(孙子进程)?

    还是wait()只能等待直接子进程?
    答案:wait函数不能等待子进程的子进程
    http://zhidao.baidu.com/link?url=jsjeZhdSBkjUpcISh2TS4IOM2EcGn5q9q-hlF9Ep3s3hBz-rwc8SLOO0z0GiRbVroCq5cnmGGvDoHc06zhRTSa

     

  • 相关阅读:
    2016年3月3日
    性能测试之我解
    Vim命令合集
    vi-vim常用命令
    架构的本质是
    网站三层架构学习之一 分层式结构
    Spring 4 + Quartz 2.2.1 Scheduler Integration Example
    “城市民族工作条例”详解--建议废止
    字符串匹配处理
    LogBack简易教程
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/4097187.html
Copyright © 2011-2022 走看看