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