我是一種新的所有fork
,exec
和wait
功能。我有一個任務,這需要我的主要過程我需要時間,然後使用所有的孩子爲每個過程寫入不同的fifos。例如,如果我有3個孩子,我將不得不寫3個不同的fifos。然後,我的父進程必須等待第一個完成寫在任何fifo,並從該特定的fifo讀取數據。讓我感到困惑的是,我的父進程必須等待第一個完成,而不是等待所有進程完成。如果我必須等待所有,我會使用while(wait(NULL)>0)
。然而你在這種情況下做什麼?我寫了下面的示例代碼:多叉,等待第一個完成
pid_t *pid;
int i;
pid = malloc(sizeof(pid_t)*children);
for(i=0;i<children;i++)
{
if((pid[i]=fork())<0)
{ /* error */ }
if(pid[i]==0)
{
//WriteOnFifos
return 0;
}
else
{
//wait for the first process to finish
}
}
在此先感謝。任何幫助,將不勝感激。
它甚至不會編譯。 'fork'不是函數調用 –
哎呀對不起,我會編輯 –
不要只編輯。發佈完整的代碼。 –