0
这个问题已经被问在这里好几次,但我找不到以下情况的答案:c + +启动新的进程,并终止在linux下当前的
我的程序使用静态链接库,打开的文件句柄,所以,我无法设置FD_CLOEXEC这些文件句柄
简单地调用exec导致很多新过程中的错误,因为无法文件句柄
基本上我需要:
1.产生新的不处理阻止当前的一个
2.终止当前进程(关闭所有句柄)
我可以在linux上执行吗?
这个问题已经被问在这里好几次,但我找不到以下情况的答案:c + +启动新的进程,并终止在linux下当前的
我的程序使用静态链接库,打开的文件句柄,所以,我无法设置FD_CLOEXEC这些文件句柄
简单地调用exec导致很多新过程中的错误,因为无法文件句柄
基本上我需要:
1.产生新的不处理阻止当前的一个
2.终止当前进程(关闭所有句柄)
我可以在linux上执行吗?
关闭所有filedescriptors应尽可能简单
#include <unistd.h>
for (i=getdtablesize();i>=0;--i)
close(i); /* close all descriptors */
这也是daemonizing期间一个标准步骤,例如见http://www.enderunix.org/docs/eng/daemon.php
为什么你无法设置这些句柄?当你要执行时,为什么不为每个文件句柄设置它?或关闭每个文件句柄? – PlasmaHH