fork() создает новый процесс, который выполняет тот же код, что и родительский (все, что после вызова fork()) после создания дочернего процесса, осуществляется переключение задач и управление от родительского процесса переходит к дочернему тут вызывается
| Код | printf("%s\n", "First linux program");
|
далее дочерний идет по ветке pid == 0 (потому что он дочерний) и вызывается
| Код | printf("%s\n", "I'm a child");
|
далее дочерний процесс успешно умирает
через некоторое время управление передается обратно родительскому и он возобновляет выполнение с кода, который следует за fork(), т. е опять идет вызов
| Код | printf("%s\n", "First linux program");
|
далее он спит 1000 секунд, потом идет вызов
| Код | printf("%s\n", "I'm a parent");
|
потом спит еще 200 секунд и также успешно завершается |