Learje de Linux Kommando - wachtsje

Namme

wachtsjen, wachtpunt - wachtsje op prosestein

Synopsis

#include
#include

pid_t wacht (int * status );
pid_t waitpid (pid_t pid , int * status , ynt- opsjes );

Beskriuwing

De wachtfunksje stopet de útfiering fan it aktive proses oant it bern ôfsluten is of oant in sinjaal levere wurdt, waans aksje de aktuele proseduere te ferfieren of in sinjaalhannelfunksje te neamen. As in bern al troch de tiid fan 'e oprop fan' e oprop is (in saneamd "zombie" proses), giet de funksje fuortendaliks werom. Alle symboalen dy't troch it bern brûkt wurde befrijd.

De waitpid- funksje slacht it útfieren fan it aktive proses oant in bern as it spesifisearre is troch it pid- argument, of oant in sinjaal levere wurdt, waans aksje de aktuele proseduere te ferfangen of in funksjonearjende funksjonearje te neamen. As in bern as fersyk fan pid al beëinige is troch de tiid fan 'e oprop (in saneamd "zombie" proses), giet de funksje fuortendaliks werom. Alle symboalen dy't troch it bern brûkt wurde befrijd.

De wearde fan pid kin ien fan wêze:

<-1

dat betsjut dat jo wachtsje foar in bernproses, waans prosesgroup ID is lyk oan de absolute wearde fan pid .

-1

dat betsjut dat jo wachtsje op in bernproses; dit is itselde gedrach dat eksponints wachtsje .

0

dat betsjut dat jo wachtsje foar in bernproses, waans proses groep ID is lyk oan dy fan it beropproses.

> 0

dat betsjut om te wachtsjen foar it bern dêr't de proseduere ID is lyk oan de wearde fan pid .

De wearde fan opsjes is in OR fan nul of mear fan 'e folgjende konstanten:

WNOHANG

dat betsjuttet fuortendaliks werom te kommen as der gjin bern is.

WUNTRACED

Dat betsjut ek werom te kommen foar bern dy't stoppe, en hokker status is net rapportearre.

(Foar Linux-allinich opsjes, sjoch hjirûnder.)

As standert is net NULL , warskôgje of warskôge status-ynformaasje op 'e lokaasje nei status .

Dizze status kin evaluearre wurde mei de folgjende macros (dizze macros nimme de stat buffer (in int ) as argumint --- net in pointer foar de buffer!):

WIFEXITED ( status )

is net-nul as it bern normaal ûntstie.

WEXITSTATUS ( status )

beoardielet op de minst belanglike acht bitsen fan 'e weromreis-koade fan it bern dat beëindere is, dy't mooglik as argument set wurde foar in oprop om út te gean () of as it argumint foar in weromjefte yn it haadprogramma. Dit makro kin allinich evaluearre wurde as WIFEXITED net-nul weromjûn.

WIFSIGNALED ( status )

jout Wier as it bernproses ôfsluten is fanwege in sinjaal dat net fard wie.

WTERMSIG ( status )

jout it getal werom fan it sinjaal dat it bernproses útskeakele hat. Dit makro kin allinich evaluearre wurde as WIFSIGNALED net-nul weromjûn.

WIFTOPPED ( status )

jout Wierum as it bernproses, dat de weromkomst feroarsake is no ophâldt; Dit is allinich mooglik as de oprop dien makke wurde mei WUNTRACED .

WSTOPSIG ( status )

jout it getal fan it sinjaal dat it bern feroarsake hat. Dit makro kin allinich evaluearre wurde as WIFSTOPPED net-nul weromjûn.

Guon ferzjes fan Unix (bgl. Linux, Solaris, mar net AIX, SunOS) definieare ek in makro WCOREDUMP ( status ) om te testen oft de bernprozess de core hat. Brûk dit allinich yn #ifdef WCOREDUMP ... #endif.

Return Value

De proseduere-ID fan it bern dy't ûntstie , of nul as WNOHANG brûkt waard en gjin bern wie beskikber, of -1 op flater (yn hokker gefal is errno op in passende wearde steld).

Flater

ECHILD

as it proses oanjûn is Pid bestiet net of is gjin bern fan it oproppen proses. (Dit kin barre foar it eigen bern as de aksje foar SIGCHLD op SIG_IGN set is. Sjoch ek de seksje LINKS NOTES oer threads.)

EINVAL

as it opsjesargumint ûnjildich wie.

EINTR

as WNOHANG net ynsteld is en in unblokkearre sinjaal of in SIGCHLD fûn is.