Книга: Программирование для Linux. Профессиональный подход
3.4.1. Ожидание завершения процесса
3.4.1. Ожидание завершения процесса
Читатели, запускавшие программу fork-exec
(см. листинг 3.4), должно быть, обратили внимание на то, что вывод команды ls
часто появляется после того, как основная программа уже завершила свою работу. Это связано с тем, что дочерний процесс, в котором выполняется команда ls
, планируется независимо от родительского процесса. Linux — многозадачная операционная система, процессы в ней выполняются одновременно, поэтому нельзя заранее предсказать, кто — предок или потомок — завершится раньше.
Но бывают ситуации, когда родительский процесс должен дождаться завершения одного или нескольких своих потомков. Это можно сделать с помощью функций семейства wait()
. Они позволяют родительскому процессу получать информацию о завершении дочернего процесса. В семейство входят четыре функции, различающиеся объемом возвращаемой информации, а также способом задания дочернего процесса.
- Ожидание процесса
- Глава пятая. Затянувшееся ожидание
- 10.5.1. Запуск и ожидание с помощью system()
- ГЛАВА 6 Управление процессами
- Ожидание завершения процесса
- Ожидание завершения потока
- Ожидание порта завершения ввода
- Альтернативы портам завершенияввода
- 4.1.2. Ожидание завершения потоков
- 3.4. Завершение процесса
- 7.4 ОЖИДАНИЕ ЗАВЕРШЕНИЯ ВЫПОЛНЕНИЯ ПРОЦЕССА
- Пример 11-22. Ожидание завершения процесса перед тем как продолжить работу