wait4 - ожидает смену состояния в стиле BSD
wait4(2)
ожидает смену состояния в стиле BSD
Other Alias
wait3
ОБЗОР
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/wait.h>
pid_t wait3(int *status, int options,
struct rusage *rusage);
pid_t wait4(pid_t pid, int *status, int options,
struct rusage *rusage);
Требования макроса тестирования свойств для glibc
(см. feature_test_macros(7)):
wait3():
_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
wait4():
_BSD_SOURCE
ОПИСАНИЕ
Данные функции устарели. Вместо них рекомендуется использовать
waitpid(2)
или
waitid(2).
Системные вызовы wait3() и wait4() похожи на waitpid(2), но
дополнительно возвращают информацию об использовании ресурсов потомком в
структуре, указываемой rusage.
Помимо использования аргумента rusage, вызов wait3():
wait3(status, options, rusage);
эквивалентен:
waitpid(-1, status, options);
Подобно этому, вызов
wait4():
wait4(pid, status, options, rusage);
эквивалентен:
waitpid(pid, status, options);
Другими словами,
wait3() ожидает любого потомка, а для
wait4() может
быть указан определённый потомок или потомки, которых нужно
ожидать. Подробней см.
wait(2).
Если rusage не равно NULL, то struct rusage, на которую он указывает,
будет заполнен информацией о работе потомка. Подробней см. getrusage(2).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Как в
waitpid(2).
ОШИБКИ
Как в
waitpid(2).
СООТВЕТСТВИЕ СТАНДАРТАМ
4.3BSD.
В SUSv1 определена wait3(); в SUSv2 включена wait3(), но помечена как
УСТАРЕВШАЯ; удалена в SUSv3.
ЗАМЕЧАНИЯ
Включать
<sys/time.h> в настоящее время не требуется, но это
увеличивает переносимость. (Безусловно, в
<sys/resource.h>
определена структура
rusage с полями типа
struct timeval, которая
определена в
<sys/time.h>.)
Отличия между библиотекой C и ядром
В Linux,
wait3() является библиотечной функцией, реализованной на основе
системного вызова
wait4().