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

POPEN后如何知道哪个是父进程执行的结果

    来源: 互联网  发布时间:2016-06-24

    本文导语:    书上说POPEN的执行顺序是先创建一个管道,然后在FORK一个子进程,再关闭管道某端,那我想问下,应该怎么分辨原来的进程和FORK产生的子进程呢?比如说在 if ((fpin = popen("myuclc", "r")) == NULL)      break; printf("for a te...

  书上说POPEN的执行顺序是先创建一个管道,然后在FORK一个子进程,再关闭管道某端,那我想问下,应该怎么分辨原来的进程和FORK产生的子进程呢?比如说在

if ((fpin = popen("myuclc", "r")) == NULL)
     break;
printf("for a test");

为什么是输出一个 for a test呢,

但是
    pid = fork();
    printf("for a test");
的话就输出 for a testfor a test

为什么呢?难道popen后也只有一个进程?父进程自己注销了?  谢谢啊,初学,小菜问题....

|
popen = pipe + fork + exec
在fork一个子进程后,子进程是父进程的拷贝,但用popen后子进程会执行exec调用myuclc程序以替代父进程的拷贝,所以不会输出for a test,你看到的for a test是父进程输出的

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • popen()里的command是个脚本,里面定义了function,在运行时,报错sh:"}"非期望的.看popen帮助,它execl不一定就用ksh,如何设环境是她能用ksh
  • popen()函数的问题
  • 频繁调用popen的问题
  • 谁能告之popen函数的BUG?
  • 关于popen函数使用的问题
  • 请教cgi程序不能使用popen的问题
  • popen和system的问题
  • 用popen,不能使用fseek了?Segmentation fault错误
  • fd = popen(command, "r")怎么获取fd长度啊
  • popen得小问题。
  • 请教关于popen()命令!
  • 关于popen
  • popen()函数的使用
  • popen 函数。。。
  • popen/pclose: too many open files
  • 《Unix环境高级编程》的程序14-7中的popen函数调用myuclc出错
  • 关于popen调用ls获取文件名的问题
  • popen 用法中:an exit status of 127 ?
  • 关键字:UNIX C POPEN FILE
  • Linux系统中popen函数的缺陷与改造方案 ---谁有这篇文章?


  • 站内导航:


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

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

    浙ICP备11055608号-3