Хотите узнать, как работает форк?

Я пробую следующий код на C:

int main()
{
    printf("text1\n");
    fork();
    printf("text2\n");
    return 0;
}

Я ожидал получить результат, в котором я получаю два » text1 "и два" text2 ", например:

text1
text1
text2
text2

Но вместо этого я получаю:

text1
text2
text2

только один" text1 "??? Хорошо, если дочерний процесс выполняется из fork (), то почему я получаю два «text1» для следующего:

int main()  
{  
    printf("text1");  
    fork();  
    printf("text2\n");  
    return 0;  
}  

теперь вывод:

text1text2  
text1text2 

Если дочерний процесс запускается после fork, вывод должен быть:

text1  
text2  
text2  
]
6
задан Bill the Lizard 16 May 2011 в 01:57
поделиться