码迷,mamicode.com
首页 > 其他好文 > 详细

调用程序继承fd和监听端口的问题

时间:2016-04-23 07:52:03      阅读:318      评论:0      收藏:0      [点我收藏+]

标签:linux   fd   close   

linux子进程或者popen、exec启动的程序都会继承fd

比如主进程调用了另一个程序,结果主程序结束后,这个被调用程序竟然继承了所有的fd包括监听端口,有时候阻塞运行时间比较长,会导致监听端口收不到报文。后来实验建立子进程去启动程序,写个脚本去启动程序,情况是一样的。写个小程序再去启动脚本,也一样。

查了下文档,使用fcloseall来关闭fd,结果发现这个函数没用,别的系统没有试验,至少在centos6.3和redhat5.7都不行。

最后直接在子进程里面从3到1000的fd全部close,然后再调用其他程序 ,总算ok了。


本文出自 “飞翔正义的博客” 博客,请务必保留此出处http://xzq2000.blog.51cto.com/2487359/1766786

调用程序继承fd和监听端口的问题

标签:linux   fd   close   

原文地址:http://xzq2000.blog.51cto.com/2487359/1766786

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!