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

求助:Linux下fork()子进程问题

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

    本文导语:  各位大侠:    我编了一个Linux下的程序,在程序中需要根据情况用fork()函数起一些子进程来进行相应的处理,子进程执行完毕后,希望能够完全释放资源,除了调用exit()退出子进程外,是不是还需要做一些别的善后...

各位大侠:
   我编了一个Linux下的程序,在程序中需要根据情况用fork()函数起一些子进程来进行相应的处理,子进程执行完毕后,希望能够完全释放资源,除了调用exit()退出子进程外,是不是还需要做一些别的善后工作,才能完全释放资源,希望得到各位大侠的帮助,多谢了。

|
    主进程需要调用 wait() 或者类似函数,当子进程执行完毕,需要它们的父进程进行扫尾工作。这个任务,称为”收获孩子”(reaping a child),可以用wati*()函数完成。紧跟在fork()之后,父进程可以等待子进程完成并在那进行扫尾。父进程也可以继续运行,稍后再扫尾,同样也是用wait*()函数中的一个。不管父进程选择了那个方法,该工作都必须进行。当子进程完成执行,还没有被收获的时候,它进入了闲置状态,变成了著名的僵尸进程。
    调用wait()会挂起执行(比如,waits),直到子进程(其他的子进程)正常执行完毕或通过信号终止。wait()将会收获子进程,释放所有的资源。如果子进程已经完成,那么wait()只是进行些收获的过程。

|
up

|
用wait或者waitpid吧,waitpid带WNOHANG参数时,可以不阻塞父进程

|


建议用waitpid吧

|
exit会完全善后该进程的东西了啊,不过如果有用到堆里的空间,最好绑定一个atexit的函数来释放堆空间。

当然,父进程还必须wait或者waitpid为子进程收尸。
用waitpid设置非阻塞吧

|
程序一退出,所有的资源都会释放。资源泄露的问题一般是在服务程序中发生,也就是需要一直运行下去的程序,才会有明显的资源泄露问题。使用exit函数的程序将退出,所以,不管是程序员自己释放资源还是系统回收资源,资源都将归还给操作系统。

|


up一下

    
 
 

您可能感兴趣的文章:

  • 我想让vfork后就execl一进程,同时让execl出来的进程之间能相互通信,求助
  • 求助:信号 --13 进程中断
  • 【求助】多进程中 内核信号量无效?
  • 【求助】linux/Unix下创建子进程,向父进程发送信号,子进程也能收到改信号,此时如何让子进程不收到信号 iis7站长之家
  • 新人求助,进程调度的问题.
  • 求助 linux进程管理
  • linux下进程并发问题。急!!!求助!!!
  • 菜鸟求助, Linux进程的问题
  • 紧急求助,关于kill进程 , 大家帮帮忙啊 !!!
  • [求助]查看监听端口所属进程问题
  • 求助:怎样获得freebsd中的进程pid?
  • ■■求助■■ 如何查看一个进程拥有的线程数量???
  • 求助: 进程调度内核分析
  • 求助(SHELL 脚本)进程的唯一性检查
  • [求助]popen 函数引起 shell 调用, sh 成为僵尸进程.
  • 【求助】linux/Unix下创建子进程,向父进程发送信号,子进程也能收到改信号,此时如何让子进程不收到信号
  • 求助:父进程被kill掉以后,子进程在任务表中所占内存是怎样释放的?
  • 求助:AIX5L,如何得到被某个进程打开的文件名称?
  • [求助]在hp-unix如何删除本进程的环境变量。
  • 求助:在什么情况下需要用到进程编程?谢谢!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • module的问题.版本问题 求助
  • 求助关于linux和windows引导lilo的问题
  • 求助~~求助 ~~linux文件读写问题
  • 求助! 又出现问题了!
  • 一个简单的问题,高分求助!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • socket实现多文件并发传输,求助多线程实现问题?
  • 各位大侠,求助一个关于ubuntu系统的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • 高分求助
  • 紧急求助java多线程编程!!!!!!!!!!!!!
  • 高分求助foxpro的jdbc驱动程序!!!!
  • ~(取反)操作错误,求助!谢谢
  • 求助:在Java中如何获得当前系统的CPU型号?
  • RPM紧急求助
  • 求助:如何在UNIX下访问已经在WINDOWS下安装好的ORACLE?
  • 求助!
  • 高分求助实例!!!!定期删除文件!!!!!


  • 站内导航:


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

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

    浙ICP备11055608号-3