0
Я застрял в понимании вывода этой программы.fork() - Можете ли вы объяснить этот вывод
#include<stdio.h>
#include<unistd.h>
void fork1()
{
printf("\n %d L0", getpid());
fork();
printf("\n %d L1", getpid());
fork();
printf("\n %d Bye", getpid());
}
int main()
{
fork1();
return 0;
}
Выход
2625 L0
2625 L0
2625 L1
2625 Bye 2626 L1
2626 Bye 2625 L1
2627 Bye 2626 L1
2628 Bye
Два вопроса: 1) «printf()» буферизуется. Символы не отображаются сразу; они отображаются только тогда, когда ОС решает его выполнить. 2) Кроме того, ОС может (и, вероятно, будет) переключаться между различными процессами в * середине * ввода-вывода. Эти два вопроса должны объяснить «перемежение», которое вы видите на выходе. – FoggyDay