父和子在fork中的奇怪行为

时间:2016-12-19 10:39:13

标签: c fork parent sleep

执行以下代码后,root命令行不会自动出现。如果睡眠语句被反转,则显示根命令行。

为什么会出现这种情况?

#include<stdio.h>
#include<unistd.h>
int main()
{
    if(fork()==0)/*creating fork*/
    {
        sleep(10);
        printf("In child.. %d.\n",getpid());
    }
    else
    {
        sleep(5);
        printf("In parent.%d ..\n",getpid());
    }
}

1 个答案:

答案 0 :(得分:-1)

我敢保证在出现“ in child”之前,会再次出现shell提示 。我想您看到的输出按该顺序是“在父级”,“ PROMPT#”和“在子级”。                     –́Robᵩ