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

     

  • 相关阅读:
    前端(基础篇)
    面向对象
    python(进阶篇)
    Python(基础篇)
    pycharm中添加python3 的环境变量
    MySQL与MongoDB的不同
    pycharm中添加python3 的环境变量
    ContentType&CORS&Git
    RESTful 组件
    Django REST_framework Quickstart
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/4097187.html
Copyright © 2011-2022 走看看