我想獲得子進程的PID。 但是當我運行execl時,它打印出0的PID,有時是負數而不是真正的PID。 但是,如果我刪除execl行,它工作正常。 任何人都知道爲什麼?Execl和打印的兒童PID
if (pid==0)
{
arrayPID[i] = getpid();
execl("/bin/ls","/bin/ls",NULL);
}
printf ("Child PID is %i\n",arrayPID[i]);
注意,我知道,EXECL的第二個參數應該只是「LS」,但它似乎是工作,我需要它是這樣的。是因爲這個嗎?
我也試過這個,但仍給零PID或負值的PID。
if (pid==0)
{
arrayPID[i] = getpid();
}
if (pid==0)
{
execl("/bin/ls","/bin/ls",NULL);
}
假設我的其他代碼是正確的。
感謝
它給了我的子進程的PID? – Newbie
fork只返回零值,所以我們知道它是一個孩子。我需要實際的PID – Newbie
@Newbie,'fork()'在孩子中返回零。在父親中,它返回孩子的PID。 –