当前位置:  技术问答>linux和unix

管道中的父进程要不要等待子进程的退出?

    来源: 互联网  发布时间:2015-11-18

    本文导语:  我写的函数如下: void* io_open() {     int p_out[2];     int pid;     pipe(p_out);     pid = fork();     if (pid==0){//child, write                 close(p_out[0]);         dup2(p_out[1], 1);         close(p_out[1]);...

我写的函数如下:
void* io_open()
{
    int p_out[2];
    int pid;

    pipe(p_out);
    pid = fork();
    if (pid==0){//child, write        
        close(p_out[0]);
        dup2(p_out[1], 1);
        close(p_out[1]);
        execl(io_path, io, NULL); //执行io_path下的io程序
    } else if (schk_pid > 0){//father, read
        close(p_out[1]);
        if ((fp_io=fdopen(p_out[0], "r")) == NULL)
  syserr("fdopen p_out[0]");
        waitpid(&pid, NULL);//这句到底要不要?
        close(p_out[1]);
    }
    return 0;
}
请问,有的书上没有写waitpid这句,到底要不要呢?注意,io程序可以接收退出信号。

|
首先也许是笔误,waitpid下面一句应该是
close(p_out[0]);

waitpid的目的是为了让kernel能够清除子进程资源,在这里可以不要。

|
有好。如果没有,close(p_out[0])可能会在child退出前执行,导致child报SIGPIPE。

|
父子进程间用同步手段来控制子进程后于父进程结束,这样就不用waitpid了

    
 
 

您可能感兴趣的文章:

  • 多进程通讯的管道相关问题
  • 如何实现管道和后台进程
  • linux进程管道通信
  • 为什么无名管道只能在具有亲缘关系的进程之间进行通信?
  • 多个进程同时写一个管道会不会有问题???
  • 一个进程中能够打开两个管道么 一个读 一个写
  • 关于进程与管道的问题,谢谢。
  • 守护进程和fork()以及管道通信的结合
  • 进程间通信---关于管道
  • 管道和父子进程的问题
  • 安全管道守护进程 Spiped
  • 请教个父子进程管道问题
  • linux进程间通信(管道)的问题
  • 用无名管道实现进程通信,可是出错了,打击哦
  • linux进程管道通信C语言编程:程序有问题,请指点迷津
  • linux进程间通信(命名管道)的问题
  • 初学.请帮忙看看fork的子进程读管道时为何阻塞!
  • Linux中管道的使用(父或子进程中能否都保留读写端)
  • 父子进程之间管道通信问题
  • 在用管道通信父子进程遇到问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux管道问题,管道建立后如何同步?
  • 哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • 1哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • 怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住???
  • 为什么无名管道只能在具有亲缘关系的进程之间进行通信? iis7站长之家
  • 管道(|)是怎么实现的?
  • 我用管道作为一个程序的标准输入时,程序报错说不是一个终端不能做为标准输入,请问怎么样管道成为它的标准输入呢???具体错误信息见内
  • 请问何时删除命名管道哪?
  • Linux下面的"匿名管道",是否对应着某种实体?
  • 串口和管道诡异的问题,在线急等解答
  • 请问如何让自己编写的Shell程序支持管道?
  • 命名管道open时被阻塞了
  • 关于有名管道的权限问题?
  • 命名管道问题
  • linux 管道通信
  • 关于管道的用法
  • 请教大家一个关于管道的问题
  • 创建了一个管道,写入数据正确,读数据失败。为什么?
  • 什么原因可以造成管道破裂?
  • 匿名管道的堵塞


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3