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

关于vfork()函数对父进程空间的处理

    来源: 互联网  发布时间:2016-08-17

    本文导语:  在APUE上关于VFORK讲的太少,看了一遍又一遍还是看不出门道。只知道vfork()调用后子进程先起来。是在父进程环境上运行的。如果在子进程中对父进程的一个变量写操作。则该变量在父进程也已经改变(因为是共享的...

在APUE上关于VFORK讲的太少,看了一遍又一遍还是看不出门道。只知道vfork()调用后子进程先起来。是在父进程环境上运行的。如果在子进程中对父进程的一个变量写操作。则该变量在父进程也已经改变(因为是共享的)。
但是最近遇到一个问题,就是uClinux上只有vfork,程序需要vfork()结合pipe()。
在父子进程中各自关闭不需要的 读端,写端。然后进行通信,发现和 fork()的结果是一样的。就很郁闷了。按理说在子进程中关闭写端,那么在父进程中该写端也被关闭了(不是共享吗)。但是事实上并没有。
还有 ,不但是管道,对于打开的文件也是如此。

 8 int main()
  9 {
 10     int n;
 11     int open_fd;
 12     int fd[2];
 13     pid_t pid;
 14     char line[16];
 15     open_fd = open("local.c", O_RDONLY);
 16     if(pipe(fd) 

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












  • 相关文章推荐
  • <unix环境变量高级编程第8章> vfork例题的疑问
  • 请问下面一个关于vfork的c程序的运行结果为什么会出现Segmentation fault ?哪位高手帮我解释下,谢谢。
  • 使用vfork(),后用return 出现段错误问题
  • 一个简单的vfork pid 问题?
  • what's the difference between fork()&vfork()?
  • vfork深度解析!!!


  • 站内导航:


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

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

    浙ICP备11055608号-3