Fermana Linux ya fêr bibin - bisekinin

Nav

benda bisekin, ji bo pêvajoyê vekin

Synopsis

#include
#include

pid_t wait (int * status );
pid_t waitpid (pid_t pid , int * stat , hilbijêre int );

Terîf

Çalakiya bendava darizandina darizandina pêvajoyê ya ku heta ku zarok derketin an jî heta ku nîşanek veguhestin ku çalakiya ku pêvajoya niha de qedexe ye yan karûbarê destûra karûbarê nîşan bide telefonê dike. Heke zarok ji hêla dema telefonê ve (ex-navê "zombî") derket holê, fonksiyonê yekser vegerîne. Her pergala çavkaniyên ku ji hêla zarokan ve tê bikaranîn azad kirin.

Fîlmeya weya pisporê darvekirina pêvajoyê ya ku niha ji hêla pid- paqijkirinê ve tête vekirî ye, an jî heta ku hestek dabû destnîşankirin ku çalakiya ku pêvajoya niha de qedexe ye an karûbarê destûra karûbarê nîşan bide. Heke zarok ku ji pid ji daxwaza daxwaza daxwaza wext ji dema wextê ve hatibû veguhestin (pêvajoyek bi navê "zombî"), fonksiyon yekser vegerîne. Her pergala çavkaniyên ku ji hêla zarokan ve tê bikaranîn azad kirin.

Nirxa pid dikare yek ji

<-1

ku tê wateya ku pêvajoyek pêvajoya zaroka bendê, ku nasnameya grûpê wekheviya nirxê pid be .

-1

kîjan wateya ku pêvajoyek zarokek bendê bimînin; Ev heman helwestek e ku pêşniyar dike.

0

ku tê wateya ku pêvajoyek pêvajoya zaroka bendê, ku nasnameya grûpê pêvajoya wê ya pêvajoya bangê ye.

> 0

kîjan tê wateya ku ji bo zarokê ku nasnameya pêvajoyê wekheviya pid be .

Çirxên alternatîf an an zûtirîn an jî bêtir bêhtir jêrînan e:

WNOHANG

kîjan tê wateya ku tu zarok nabe.

WÊTRACED

ku tê wateya ku ji bo zarokên ku têne rawestandin, vegerin û rewşa wî nehatiye ragihandin.

(Ji bo hilbijartinên Linux-tenê, jêrîn binêrin.)

Heger statuyek nULL nabe , agahdariya stateyê ya li benda rawestandinê an betalpidê li cîhê ku ji aliyê statuya ve girêdayî ye .

Ev statuya dikare bi macro jêr têne nirxandin (ev macro bafrokek (an int ) wek argumentek - nexşterek ji pêdivî ye!):

BİXWÎNE ( status )

Ger zarokê bi awayekî normal ve derkeve.

WEXITSTATUS ( status )

nirxên herî kêm 8 bîtên vegera koda ku zarok ku tête qedexekirin, dibe ku wekî meseleyek ji bo derketinê ()) an jî wekî argumentê ji bo bernameyek vegera di bernameya sereke de hatiye diyarkirin. Ev macro dikare tenê werin nirxandin ku heger WIFEXITED ne- şûnde vegeriyan.

WIFSIGNALED ( status )

eger ev pêvajoya zarok ji ber ku nîşanek ku nehatibû girtin nehatiye vegerandin.

WTERMSIG ( status )

hejmarek hejmara navnîşê vedigire ku ji sedema pêvajoya zaroka zarokan winda dike. Ev macro dikare tenê nirxandin ku WIFSIGNALED ne-şûne vegeriyan.

WIFSTOPPED ( status )

Heke vegerandina zarokê ku ji bo veguhastina rast tê veguhestin rast e; ev yek tenê dibe ku heya telefonê bi karûbarê kar anîn .

WSTOPSIG ( status )

hejmarek hejmara navnîşê vedigire ku ji sedema zarok ve raweste. Ev macro dikare tenê nirxandin ku eger WIFSTOPPED ne-şûne vegeriyan.

Hin versiyonên Unix (mînakek Linux, Solaris, lê ne AIX, SunOS) jî testa WCOREDUMP (statue ) jî tehlîm bike ku bizanin ka pêvajoya zarokê kurê dumped. Tenê vê karê li #ifdef WCOREDUMP tê bikaranîn ... #endif.

Nirxê vegerin

Nasnameya pêvajoyê ya zarokê ku WNOHANG hate bikaranîn û hejmar e û zarok nebûye, an jî li ser xeletiyek heye (li kîjan rewşê çewtiyek çêkirî ye).

Şaş

ECHILD

Heke pêvajoyê di navnîşan de diyar kirin pid nîne an zarokê ne pêvajoya banga pêkanîn. (Ev dibe ku ji bo çalakiyek ji bo SIGCHLD ve hatiye şandin ji bo zarokek yek jixwe dibe SIG_IGN. Li beşa LINUX Nîşeyên li ser mijarên din binêrin.)

EINVAL

heger hilbijêrên mimkûn ne çewt e.

EINTR

Heke WNOHANG nehatiye sazkirin û nîşanek an betalkirin an SIGCHLD hate girtin.