当前位置: 技术问答>linux和unix
fork出来的进程不能完全继承父进程的属性吗?
来源: 互联网 发布时间:2015-06-24
本文导语: 简单说一下程序的流程 主程序: 先用setrlimit使打开文件的上限提高到6w. 预先bind 4000个socket. 然后创建工作线程. 在线程里面需要用到其他2进制程序的功能 因此调用了system(command); 此时,command报错,can open file. 我估计...
简单说一下程序的流程
主程序:
先用setrlimit使打开文件的上限提高到6w.
预先bind 4000个socket.
然后创建工作线程.
在线程里面需要用到其他2进制程序的功能
因此调用了system(command);
此时,command报错,can open file.
我估计是因为父进程的4k个描述符传递给子进程了,
而子进程又没有继承父进程的文件上限6w的属性.
因此,无法打开更多的文件.
如果把主进程bind的socket改成40个,就没有问题了.
请问有什么方法能让子进程继承父进程的文件上限6w的属性吗?
据说有在thread里面创立进程的安全方式.我还没有google到.
3x
主程序:
先用setrlimit使打开文件的上限提高到6w.
预先bind 4000个socket.
然后创建工作线程.
在线程里面需要用到其他2进制程序的功能
因此调用了system(command);
此时,command报错,can open file.
我估计是因为父进程的4k个描述符传递给子进程了,
而子进程又没有继承父进程的文件上限6w的属性.
因此,无法打开更多的文件.
如果把主进程bind的socket改成40个,就没有问题了.
请问有什么方法能让子进程继承父进程的文件上限6w的属性吗?
据说有在thread里面创立进程的安全方式.我还没有google到.
3x
|
up
|
总数有限阿,你要是想子进程6w可以让附进程40个洛