Aprann lòd la Linux - rete tann

Non

tann, waitpid - rete tann pou revokasyon pwosesis la

Rezime

#Enkli
#Enkli

pid_t rete tann (int * estati );
pid_t waitpid (pid_t pid , int * estati , opsyon IN );

Deskripsyon

Fonksyon nan rete tann sispann ekzekisyon nan pwosesis aktyèl la jiskaske yon timoun sòti, oswa jiskaske yon siyal delivre ki gen aksyon se mete fen nan pwosesis aktyèl la oswa yo rele yon fonksyon manyen siyal. Si gen yon timoun ki deja egziste pa lè apèl la (yon pwosesis "zonbi"), fonksyon an retounen imedyatman. Nenpòt resous sistèm ki te itilize pa timoun lan te libere.

Fonksyon waitpid la sispann ekzekisyon nan pwosesis aktyèl la jiskaske yon timoun jan espesifye nan agiman PID la te sòti, oswa jiskaske yon siyal delivre ki gen aksyon se mete fen nan pwosesis aktyèl la oswa yo rele yon fonksyon manyen siyal. Si yon timoun ki mande PID deja eksite pa lè apèl la (yon pwosesis "zonbi"), fonksyon an retounen imedyatman. Nenpòt resous sistèm ki te itilize pa timoun lan te libere.

Valè PID ka youn nan:

<-1

ki vle di yo rete tann pou nenpòt ki pwosesis pitit ki gen ID gwoup pwosesis ki egal a valè a absoli nan PID .

-1

ki vle di pou tann pou nenpòt pwosesis timoun; sa a se menm konpòtman ki ekspozisyon ekspozisyon.

0

ki vle di yo rete tann pou nenpòt ki pwosesis pitit ki gen ID gwoup pwosesis ki egal ak sa yo ki nan pwosesis la rele.

> 0

ki vle di yo rete tann pou timoun nan ki ID pwosesis ki egal a valè PID .

Valè a nan opsyon se yon OSWA nan zewo oswa plis nan konstan yo sa yo:

WNOHANG

ki vle di retounen imedyatman si pa gen okenn timoun ki sòti.

WUNTRACED

ki vle di tou pou retounen pou timoun ki sispann, ak ki gen estati pa te rapòte.

(Pou opsyon Linux-sèlman, gade pi ba a.)

Si estati a pa NULL , rete tann oswa rete tann sitiyasyon estatistik magazen nan kote ki endike nan estati .

Estati sa a ka evalye ak macros sa yo (macros sa yo pran tanpon stat (yon int ) kòm yon agiman --- pa yon konsèy nan tanpon la!):

WIFEXITED ( estati )

se ki pa zewo si timoun nan sòti nòmalman.

WEXITSTATUS ( estati )

evalye omwen siyifikatif uit bits nan kòd la retounen nan timoun nan ki sispann, ki ka yo te mete kòm agiman an nan yon rele sòti () oswa kòm agiman an pou yon deklarasyon retounen nan pwogram prensipal la. Ka makro sa a sèlman evalye si WIFEXITED retounen non-zewo.

WIFSIGNALED ( estati )

retounen vre si pwosesis timoun nan sòti paske yo te yon siyal ki pa te kenbe.

WTERMSIG ( estati )

retounen kantite siyal ki te lakòz pwosesis timoun nan mete fen nan. Ka makro sa a sèlman evalye si WIFSIGNALED retounen ki pa zewo.

WIFTOPPED ( estati )

retounen vre si pwosesis timoun nan ki te lakòz retounen nan kounye a sispann; Sa a se sèlman posib si yo te fè apèl la lè l sèvi avèk WUNTRACED .

WSTOPSIG ( estati )

retounen kantite siyal ki te koze timoun nan sispann. Ka makro sa a sèlman evalye si WIFSTOPPED retounen ki pa zewo.

Gen kèk vèsyon nan Unix (egzanp Linux, Solaris, men se pa AIX, SunOS) defini tou yon macro WCOREDUMP ( estati ) pou teste si pwosesis la timoun yo jete nwayo. Sèvi ak sèlman sa a ki fèmen nan #ifdef WCOREDUMP ... #endif.

Valè valè

ID pwosesis la nan timoun nan ki sòti, oswa zewo si WNOHANG te itilize epi pa gen okenn timoun ki te disponib, oswa -1 sou erè (nan ka sa a errno se mete nan yon valè ki apwopriye).

Erè

ECHILD

si pwosesis la espesifye nan PID pa egziste oswa se pa yon timoun nan pwosesis la rele. (Sa ka rive pou pwòp pitit ou si aksyon SIGCHLD yo mete sou SIG_IGN. Gade seksyon LINUX NOTES sou fil.)

EINVAL

si agiman opsyon an te envalid.

EINTR

si WNOHANG pa te mete ak yon siyal unblocked oswa yon SIGCHLD te kenbe.