wait4

Autres langues

Langue: ru

Autres versions - même langue

Version: 1997-06-23 (openSuse - 09/10/07)

Section: 2 (Appels système)

éíñ

wait3, wait4 - ÏÖÉÄÁÔØ ÏËÏÎÞÁÎÉÑ ÐÒÏÃÅÓÓÁ, ÓÔÉÌØ BSD

ïâúïò


#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);

ïðéóáîéå

æÕÎËÃÉÑ wait3 ÐÒÉÏÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÙÐÏÌÎÅÎÉÅ ÔÅËÕÝÅÇÏ ÐÒÏÃÅÓÓÁ, ÐÏËÁ ÅÇÏ ÐÏÔÏÍÏË ÎÅ ÚÁ×ÅÒÛÉÔÓÑ ÉÌÉ ÐÏËÁ ÎÅ ÂÕÄÅÔ ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ ÔÅËÕÝÅÇÏ ÐÒÏÃÅÓÓÁ ÉÌÉ ×ÙÚÏ×Á ÆÕÎËÃÉÉ-ÏÂÒÁÂÏÔÞÉËÁ ÜÔÏÇÏ ÓÉÇÎÁÌÁ. åÓÌÉ ÐÏÔÏÍÏË ÕÖÅ ÚÁ×ÅÒÛÉÌÓÑ Ë ÍÏÍÅÎÔÕ ×ÙÚÏ×Á ÜÔÏÊ ÆÕÎËÃÉÉ (ÔÁË ÎÁÚÙ×ÁÅÍÙÊ "zombie" (ÚÏÍÂÉ) ÐÒÏÃÅÓÓ), ÔÏ ×ÏÚ×ÒÁÔ ÉÚ ÆÕÎËÃÉÉ ÐÒÏÉÓÈÏÄÉÔ ÍÎÇÎÏ×ÅÎÎÏ. ÷ÓÅ ÓÉÓÔÅÍÎÙÅ ÒÅÓÕÒÓÙ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÏ×ÁÌ ÐÏÔÏÍÏË - ÏÓ×ÏÂÏÖÄÁÀÔÓÑ.

æÕÎËÃÉÑ wait4 ÐÒÉÏÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÙÐÏÌÎÅÎÉÅ ÔÅËÕÝÅÇÏ ÐÒÏÃÅÓÓÁ, ÐÏËÁ ÅÇÏ ÐÏÔÏÍÏË, ÚÁÄÁÎÎÙÊ ÁÒÇÕÍÅÎÔÏÍ pid ÎÅ ÚÁ×ÅÒÛÉÔÓÑ ÉÌÉ ÐÏËÁ ÐÏËÁ ÎÅ ÂÕÄÅÔ ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ ÔÅËÕÝÅÇÏ ÐÒÏÃÅÓÓÁ ÉÌÉ ×ÙÚÏ×Á ÆÕÎËÃÉÉ-ÏÂÒÁÂÏÔÞÉËÁ ÜÔÏÇÏ ÓÉÇÎÁÌÁ. åÓÌÉ ÐÏÔÏÍÏË, ÚÁÄÁÎÎÙÊ ÁÒÇÕÍÅÎÔÏÍ pid ÕÖÅ ÚÁ×ÅÒÛÉÌÓÑ Ë ÍÏÍÅÎÔÕ ×ÙÚÏ×Á ÜÔÏÊ ÆÕÎËÃÉÉ (ÔÁË ÎÁÚÙ×ÁÅÍÙÊ "zombie" (ÚÏÍÂÉ) ÐÒÏÃÅÓÓ), ÔÏ ×ÏÚ×ÒÁÔ ÉÚ ÆÕÎËÃÉÉ ÐÒÏÉÓÈÏÄÉÔ ÍÎÇÎÏ×ÅÎÎÏ. ÷ÓÅ ÓÉÓÔÅÍÎÙÅ ÒÅÓÕÒÓÙ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÏ×ÁÌ ÐÏÔÏÍÏË - ÏÓ×ÏÂÏÖÄÁÀÔÓÑ.

úÎÁÞÅÎÉÅ pid ÍÏÖÅÔ ÂÙÔØ:

< -1
ÞÔÏ ÏÚÎÁÞÁÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔØ ÏÖÉÄÁÔØ ÏËÏÎÞÁÎÉÑ ×ÓÅÈ ÐÒÏÃÅÓÓÏ×-ÐÏÔÏÍËÏ×, ÞÅÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÇÒÕÐÐÙ ÐÒÏÃÅÓÓÁ ÒÁ×ÅÎ ÐÏ ÍÏÄÕÌÀ ÚÎÁÞÅÎÉÀ pid.
-1
ÞÔÏ ÏÚÎÁÞÁÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔØ ÏÖÉÄÁÔØ ÏËÏÎÞÁÎÉÑ ×ÓÅÈ ÐÒÏÃÅÓÓÏ×-ÐÏÔÏÍËÏ×; ÜÔÏ ÜË×É×ÁÌÅÎÔÎÏ ×ÙÚÏ×Õ wait3.
0
ÞÔÏ ÏÚÎÁÞÁÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔØ ÏÖÉÄÁÔØ ÏËÏÎÞÁÎÉÑ ×ÓÅÈ ÐÒÏÃÅÓÓÏ×-ÐÏÔÏÍËÏ×, ÞÅÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÇÒÕÐÐÙ ÐÒÏÃÅÓÓÁ ÒÁ×ÅÎ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÍÕ ÉÄÅÔÉÆÉËÁÔÏÒÕ ×ÙÚÙ×ÁÀÝÅÇÏ ÐÒÏÃÅÓÓÁ.
> 0
ÞÔÏ ÏÚÎÁÞÁÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔØ ÏÖÉÄÁÔØ ÏËÏÎÞÁÎÉÑ ÐÒÏÃÅÓÓÁ-ÐÏÔÏÍËÁ, ÞÅÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ ÒÁ×ÅÎ ÚÎÁÞÅÎÉÀ pid.

úÎÁÞÅÎÉÅ options Ñ×ÌÑÅÔÓÑ ÂÉÔÏ×ÏÊ ÍÁÓËÏÊ, ËÏÔÏÒÁÑ ÐÏÌÕÞÁÅÔÓÑ ÂÉÔÏ×ÙÍ ÓÌÏÖÅÎÉÅÍ (OR) ÓÌÅÄÕÀÝÉÈ ËÏÎÓÔÁÎÔ:

WNOHANG
ÏÚÎÁÞÅÔ ÎÅÍÅÄÌÅÎÎÙÊ ×ÏÚ×ÒÁÔ, ÅÓÌÉ ÎÅÔ ÐÏÔÏÍËÏ×, ÄÌÑ ËÏÔÏÒÙÈ ÎÕÖÎÏ ÏÖÉÄÁÔØ ÚÁ×ÅÒÛÅÎÉÑ.
WUNTRACED
ÏÚÎÁÞÁÅÔ ÔÁËÖÅ ×ÏÚ×ÒÁÔ ÄÌÑ ÐÏÔÏÍËÏ× ËÏÔÏÒÙÅ ÏÓÔÁÎÏ×ÌÅÎÙ É ÞØ£ ÓÏÓÔÏÑÎÉÅ ÎÅ ÐÏÄÄÁ£ÔÓÑ ÏÐÒÅÄÅÌÅÎÉÀ.

åÓÌÉ status ÎÅ NULL, wait3 ÉÌÉ wait4 ÓÏÈÒÁÎÑÀÔ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÓÔÏÑÎÉÉ × ÍÅÓÔÅ, ÎÁ ËÏÔÏÒÏÅ ÕËÁÚÙ×ÁÅÔ status.

üÔÏ ÓÏÓÔÏÑÎÉÅ ÍÏÖÅÔ ÂÙÔØ ÏÃÅÎÅÎÏ ÓÌÅÄÕÀÝÉÍÉ ÍÁËÒÏÓÁÍÉ (ÜÔÉ ÍÁËÒÏÓÙ ÐÏÌÕÞÁÀÔ ÂÕÆÅÒ ÓÏÓÔÏÑÎÉÑ (in) ËÁË ÁÒÇÕÍÅÎÔ ---, ÎÏ ÎÅ ÕËÁÚÁÔÅÌØ ÎÁ ÂÕÆÅÒ!):

WIFEXITED(status)
ÎÅ ÎÏÌØ, ÅÓÌÉ ÐÏÔÏÍÏË ÎÏÒÍÁÌØÎÏ ÚÁ×ÅÒÛÉÌÓÑ.
WEXITSTATUS(status)
ÏÃÅÎÉ×ÁÅÔ ÎÁÉÍÅÎÅÅ ÚÎÁÞÉÍÙÅ ×ÏÓÅÍØ ÂÉÔ ËÏÄÁ ×ÏÚ×ÒÁÔÁ ÚÁ×ÅÒÛÉ×ÛÅÇÏÓÑ ÐÒÏÃÅÓÓÁ-ÐÏÔÏÍËÁ, ËÏÔÏÒÙÊ ÍÏÖÅÔ ÂÙÔØ ÚÁÄÁÎ ËÁË ÁÒÇÕÍÅÎÔ ÄÌÑ ×ÙÚÏ×Á exit() ÉÌÉ ËÁË ÁÒÇÕÍÅÎÔ ÄÌÑ ÏÐÅÒÁÔÏÒÁ return × ÏÓÎÏ×ÎÏÊ ÐÒÏÇÒÁÍÍÅ. äÁÎÎÙÊ ÍÁËÒÏÓ ÍÏÖÎÏ ÐÒÉÍÅÎÑÔØ ÔÏÌØËÏ, ÅÓÌÉ WIFEXITED ×ÅÒÎÕÌ ÎÅ ÎÏÌØ.
WIFSIGNALED(status)
×ÏÚ×ÒÁÛÁÅÔ true, ÅÓÌÉ ÐÒÏÃÅÓÓ-ÐÏÔÏÍÏË ÚÁ×ÅÒÛÉÌÓÑ ÐÏÔÏÍÕ ÞÔÏ ÐÏÌÕÞÉÌ ÓÉÇÎÁÌ, ËÏÔÏÒÙÊ ÎÅ ÓÍÏÇ ÏÂÒÁÂÏÔÁÔØ.
WTERMSIG(status)
×ÏÚ×ÒÁÝÁÅÔ ÎÏÍÅÒ ÓÉÇÎÁÌÁ, ËÏÔÏÒÙÊ ÐÒÉ×£Ì Ë ÚÁ×ÅÒÛÅÎÉÀ ÐÒÏÃÅÓÓÁ-ÐÏÔÏÍËÁ. äÁÎÎÙÊ ÍÁËÒÏÓ ÍÏÖÎÏ ÐÒÉÍÅÎÑÔØ ÔÏÌØËÏ ÅÓÌÉ WIFSIGNALED ×ÏÚ×ÒÁÔÉÌ ÎÅ ÎÏÌØ.
WIFSTOPPED(status)
×ÏÚ×ÒÁÝÁÅÔ true, ÅÓÌÉ ÐÒÏÃÅÓÓ-ÐÏÔÏÍÏË, ËÏÔÏÒÙÊ ×ÅÒÎÕÌ ÕÐÒÁ×ÌÅÎÉÅ, × ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ ÏÓÔÁÎÏ×ÌÅÎ; ÔÁËÏÅ ×ÏÚÍÏÖÎÏ ÔÏÌØËÏ ÅÓÌÉ ÄÁÎÎÙÊ ×ÙÚÏ× ÂÙÌ ×ÙÐÏÌÎÅÎ, ÉÓÐÏÌØÚÕÑ WUNTRACED.
WSTOPSIG(status)
×ÏÚ×ÒÁÝÁÅÔ ÎÏÍÅÒ ÓÉÇÎÁÌÁ, ÐÏ ËÏÔÏÒÏÍÕ ÐÒÏÃÅÓÓ-ÐÏÔÏÍÏË ÂÙÌ ÏÓÔÁÎÏ×ÌÅÎ. äÁÎÎÙÊ ÍÁËÒÏÓ ÍÏÖÎÏ ÐÒÉÍÅÎÑÔØ ÔÏÌØËÏ ÅÓÌÉ WIFSTOPPED ×ÅÒÎÕÌ ÎÅ ÎÏÌØ.

åÓÌÉ rusage ÎÅ NULL, ÔÏ ÓÔÒÕËÔÕÒÁ struct rusage ËÏÔÏÒÁÑ ÏÐÉÓÙ×ÁÅÔÓÑ × <sys/resource.h> ÂÕÄÅÔ ÚÁÐÏÌÎÅÎÁ ÕÞ£ÔÎÏÊ ÉÎÆÏÒÍÁÃÉÅÊ. ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × getrusage(2).

÷ïú÷òáýáåíïå úîáþåîéå

÷ÏÚ×ÒÁÝÁÅÔÓÑ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÚÁ×ÅÒÛÉ×ÛÅÇÏÓÑ ÐÒÏÃÅÓÓÁ-ÐÏÔÏÍËÁ, -1 × ÓÌÕÞÁÅ ÏÛÉÂËÉ (ÏÓÏÂÅÎÎÏ, ËÏÇÄÁ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÐÒÏÃÅÓÓÏ×-ÐÏÔÏÍËÏ×, ÄÌÑ ËÏÔÏÒÙÈ ÎÕÖÎÏ ÏÖÉÄÁÔØ ÚÁ×ÅÒÛÅÎÉÑ) ÉÌÉ ×ÏÚ×ÒÁÝÁÅÔÓÑ ÎÏÌØ, ÅÓÌÉ ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ WNOHANG , ÎÏ ÐÏËÁ ÎÅÔ ÄÏÓÔÕÐÎÏÇÏ ÐÒÏÃÅÓÓÁ-ÐÏÔÏÍËÁ. ÷ ÐÏÓÌÅÄÎÉÈ Ä×ÕÈ ÓÌÕÞÁÑÈ errno ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ÏÂÒÁÚÏÍ.

ïûéâëé

ECHILD
õËÁÚÁÎÎÙÊ ÐÒÏÃÅÓÓ-ÐÏÔÏÍÏË, ÄÌÑ ËÏÔÏÒÏÇÏ ÏÓÕÝÅÓÔ×ÌÑÅÔÓÑ ÏÖÉÄÁÎÉÅ ÚÁ×ÅÒÛÅÎÉÑ, ÎÅ ÓÕÝÅÓÔ×ÕÅÔ.
EINTR
åÓÌÉ WNOHANG ÎÅ ÂÙÌ ÕÓÔÁÎÏ×ÌÅÎ É ÂÙÌ ÐÅÒÅÈ×ÁÞÅÎ ËÁËÏÊ-ÌÉÂÏ ÎÅÂÌÏËÉÒÕÀÝÉÊ ÓÉÇÎÁÌ ÉÌÉ SIGCHLD .
EINVAL
äÌÑ wait4 ÂÙÌÏ ÚÁÄÁÎÏ ÎÅÐÒÁ×ÉÌØÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ options .

úáíåþáîéñ

ðÏÄËÌÀÞÅÎÉÅ <sys/time.h> × ÄÁÎÎÙÊ ÍÏÍÅÎÔ ÎÅ ÔÒÅÂÕÅÔÓÑ, ÎÏ Õ×ÅÌÉÞÉ×ÁÅÔ ÐÅÒÅÎÏÓÉÍÏÓÔØ ÎÁ ÄÒÕÇÉÅ ÐÌÁÔÆÏÒÍÙ. (äÅÊÓÔ×ÉÔÅÌØÎÏ, <sys/resource.h> Ú×ÄÁ£Ô ÓÔÒÕËÔÕÒÕ rusage Ó ÐÏÌÑÍÉ ÔÉÐÁ struct timeval , ÏÐÉÓÁÎÎÙÍÉ × <sys/time.h>.)

ðÒÏÔÏÔÉÐÙ ÄÌÑ ÜÔÉÈ ÆÕÎËÃÉÊ ÄÏÓÔÕÐÎÙ ÔÏÌØËÏ ÅÓÌÉ ÚÁÄÁÎ ÆÌÁÇ _BSD_SOURCE (ÉÌÉ Ñ×ÎÏ ÉÌÉ ÎÅÑ×ÎÏ, ÅÓÌÉ ÎÅ ÚÁÄÁÎ _POSIX_SOURCE ÉÌÉ ËÏÍÐÉÌÑÃÉÑ ÏÓÕÝÅÓÔ×ÌÑÅÔÓÑ Ó ÏÐÃÉÅÊ -ansi).

óïïô÷åôóô÷éå óôáîäáòôáí

SVr4, POSIX.1

óíïôòé ôáëöå

signal(2), getrusage(2), wait(2), signal(7)

ðåòå÷ïä

ðÅÒÅ×£Ì Ó ÁÎÇÌÉÊÓËÏÇÏ ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× <corochoone@perm.ru> 2004