0
我有一個函數,說pfoo(),我想通過調用fork來創建一個子進程。這個函數被重複調用很多次,但我希望只在第一次調用該函數時創建子進程。fork()函數裏面只有第一次調用的函數
有沒有可能做到這一點? 我應該如何更改下面的函數以確保fork()僅在第一次被調用?我需要緩存cpid嗎?
void pfoo()
{
pid_t cpid = fork();
if (cpid == 0)
{
// child process
}
else
{
// parent process
}
....
....
}
'static int forked = 0; if(!forked){...}' – StoryTeller
'static pid_t cpid = 0;如果(cpid == 0){...}' – ikegami
@ikegami - 我想到了,但如果OP想要在子進程中阻止它分叉呢? – StoryTeller