Pagkat-on sa Linux Command - paghulat

Ngalan

paghulat, paghulat - paghulat sa pagtapos sa proseso

Sinopsis

#include
#include

pid_t maghulat (int * status );
pid_t waitpid (pid_t pid , int * status , int mga kapilian );

Deskripsiyon

Ang pag- atang sa paghulat mosuspende sa pagpatuman sa kasamtangan nga proseso hangtud nga ang usa ka bata migula, o hangtud nga ang usa ka signal ipadala kansang aksyon mao ang pagtapos sa kasamtangan nga proseso o pagtawag sa signal handling function. Kon ang usa ka bata nahuman na sa panahon sa tawag (usa ka gitawag nga "zombie" nga proseso), ang kalihokan mobalik dayon. Ang bisan unsang mga kahinguhaan sa sistema nga gigamit sa bata gibuhian.

Ang pag- atang sa waitpid nagsuspende sa pagpatuman sa kasamtangan nga proseso hangtud nga ang usa ka bata nga gitino sa pid argumento migawas, o hangtud nga ang usa ka signal ipadala kansang aksyon mao ang pag-undang sa kasamtangan nga proseso o pagtawag sa signal handling function. Kung ang usa ka bata nga gihangyo sa pid nahimo na sa panahon sa tawag (usa ka gitawag nga "zombie" nga proseso), ang kalihokan mobalik dayon. Ang bisan unsang mga kahinguhaan sa sistema nga gigamit sa bata gibuhian.

Ang bili sa pid mahimong usa sa:

<-1

nga nagpasabut nga maghulat alang sa bisan unsang proseso sa bata kansang proseso nga grupo ID katumbas sa hingpit nga bili sa pid .

-1

nga nagpasabut nga maghulat alang sa bisan unsang proseso sa bata; kini mao ang sama nga kinaiya nga naghulat nga nagpakita.

0

nga nagpasabut nga maghulat alang sa bisan unsang proseso sa bata kansang proseso nga grupo nga ID katumbas sa proseso sa pagtawag.

> 0

nga nagpasabut nga maghulat alang sa bata kansang proseso nga ID katumbas sa bili sa pid .

Ang bili sa mga kapilian usa ka OR nga zero o labaw pa sa mosunod nga mga kalagmitan:

WNOHANG

nga nagpasabut sa pagbalik gilayon kung walay anak nga migawas.

WUNTRACED

nga nagpasabut usab nga mobalik alang sa mga bata nga gihunong, ug kansang kahimtang wala gitaho.

(Alang sa Linux nga mga kapilian lamang, tan-awa sa ubos.)

Kon ang status dili NULL , maghulat o naghulat sa impormasyon sa status sa paghulat sa nahimutangan nga gipunting sa estado .

Kini nga status mahimong mahibal-an uban sa mosunod nga mga macros (kini nga mga macros nagdala sa stat buffer (usa ka int ) isip argumento --- dili usa ka pointer sa buffer!):

WIFEXITED ( kahimtang )

mao ang dili zero kon ang bata molihok sa normal.

WEXITSTATUS ( kahimtang )

nag-evaluate sa dili kaayo mahinungdanong walo ka piraso sa return code sa bata nga gitapos, nga mahimo nga gitakda ingon nga argumento sa usa ka panawagan nga mogawas () o ingon nga argumento alang sa usa ka pahayag sa pagbalik sa nag-unang programa. Kini nga macro mahimo lamang nga mahibal-an kung ang WIFEXITED mibalik nga dili zero.

WIFSIGNALED ( status )

balik kung tinuod ang proseso sa bata nga migawas tungod sa signal nga wala makuha.

WTERMSIG ( kahimtang )

nagbalik ang gidaghanon sa mga signal nga maoy hinungdan nga giputol sa bata ang proseso. Kini nga macro mahibal-an lamang kung ang WIFSIGNALED mibalik nga dili zero.

WIFSTOPPED ( kahimtang )

mobalik nga tinuod kung ang bata nga proseso nga maoy hinungdan sa pagbalik gipaundang na karon; kini mahimo lamang kung ang tawag gihimo gamit ang WUNTRACED .

WSTOPSIG ( kahimtang )

nagbalik ang gidaghanon sa signal nga nakapahunong sa bata. Kini nga macro mahimo lamang nga mahibal-an kung ang WIFSTOPPED nagbalik nga dili zero.

Ang pipila nga mga bersyon sa Unix (sama sa Linux, Solaris, apan dili AIX, SunOS) usab nagpaila sa usa ka macro WCOREDUMP ( status ) aron sa pagsulay kung ang bata nga proseso dumped core. Gigamit lamang kini nga gilakip sa #ifdef WCOREDUMP ... #endif.

Pagbalik sa Value

Ang proseso ID sa bata nga migula, o zero kon ang WNOHANG gigamit ug walay bata ang anaa, o -1 sa kasaypanan (diin ang kaso nga errno gipahamutang sa tukmang bili).

Mga sayup

ECHILD

kon ang proseso nga gipahayag sa Ang pid wala maglungtad o dili bata sa proseso sa pagtawag. (Mahimo kini mahitabo alang sa kaugalingon nga bata kon ang aksyon alang sa SIGCHLD gitakda sa SIG_IGN. Tan-awa usab ang seksyon sa LINUX NOTES sa mga thread.)

EINVAL

kon ang mga argumento sa mga kapilian dili balido.

EINTR

kung WNOHANG wala gibutang ug usa ka unblocked nga signal o usa ka SIGCHLD nadakpan.