Kawm lo lus txib Linux - tos

Lub npe

tos, waitpid - tos rau txheej txheem txiav

Synopsis

#include
#include

pid_t tos (menyuam * raws li txoj cai );
pid_t waitpid (pid_t pid , rau cov menyuam * kev ua haujlwm , rau cov menyuam yaus );

Kev piav qhia

Qhov kev ua haujlwm tos ncua sijhawm ua tiav ntawm kev ua haujlwm tam sim no kom txog rau thaum tus menyuam tau tawm, lossis mus txog thaum lub teebmeem raug xa mus rau qhov kev txiav txim tam sim no los yog hu rau lub teebmeem khiav haujlwm. Yog tias tus menyuam twb tawm los ntawm lub sijhawm hu (qhov kev sib txuas lus "zombie"), qhov kev ua haujlwm rov qab los sai sai. Txhua yam kev siv los ntawm tus menyuam raug tso tawm.

Qhov kev ua haujlwm tospid ncua kev ua tiav ntawm tus txheej txheem tam sim no kom txog rau thaum tus me nyuam raws li kev sib cav pid tau tawm, los yog txog thaum lub teeb liab raug xa mus rau qhov kev txiav txim tam sim no los yog hu rau lub teeb liab. Yog tias tus me nyuam tau thov los ntawm Disease pid twb tau tawm los ntawm lub sijhawm hu (qhov kev sib txuas lus "zombie"), qhov ua haujlwm rov qab sai sai. Txhua yam kev siv los ntawm tus menyuam raug tso tawm.

Tus nqi ntawm Disease pid yuav yog ib qho ntawm:

<-1

uas txhais tau tias yuav tau tos rau txhua tus menyuam txoj kev uas nws tus txheej txheem pabcuam ID yog sib npaug zos rau qhov nqi ntawm Disease pid .

-1

uas txhais tau tias yuav tos rau txhua tus menyuam; qhov no yog tib txoj kev coj uas tos khoom pov thawj.

0

uas txhais tau tias yuav tos rau txhua tus menyuam txoj kev uas nws tus txheej txheem pabcuam ID yog sib npaug rau qhov txheej txheem hu.

> 0

uas txhais tau tias kom tos tus me nyuam uas nws txoj kev cai ID ua sib npaug rau tus nqi ntawm Disease pid .

Tus nqi ntawm cov kev xaiv yog ib qho LOS YOG ntawm xoom lossis ntau dua ntawm cov cai txuas ntxiv mus no:

WNOHANG

uas txhais tau tias kom rov qab sai sai yog tias tsis muaj tus menyuam tau tawm.

POM ZOO

uas txhais tau tias tseem yuav rov qab rau cov me nyuam uas tau tso tseg, thiab nws qhov xwm txheej tsis tau hais qhia.

(Rau Linux-tsuas xaiv, saib hauv qab no.)

Yog tias txoj cai tsis tuaj yeem thov , tos lossis waitpid khw xwm txheej nyob rau ntawm qhov chaw taw qhia kom raws li txoj cai .

Cov xwm txheej no tuaj yeem raug soj ntsuam nrog cov macros nram qab no (cov macros coj tus tsis ntiav (tus menyuam ) ua ib qho kev sib cav --- tsis yog lub cim rau qhov tsis tuaj!):

WIFEXITED ( txheej xwm )

yog tsis yog xoom yog tias tus menyuam tawm hauv tsev.

WEXITSTATUS ( raws li txoj cai )

ntsuas cov khoom me me uas tseem ceeb tshaj yim ntawm txoj cai ntawm tus me nyuam uas tau txiav tawm, uas tau muab los ua qhov kev sib cav los tawm () los yog qhov kev sib cav rau daim ntawv xa tuaj hauv qhov kev pab cuam loj. Qhov no tsuas yog ntsuas tau yog tias WIFEXITED rov qab tsis yog xoom.

WIFSIGNALED ( raws li txoj cai )

rov qab muaj tseeb yog tias tus menyuam tau tawm ntawm qhov teebmeem uas nws tsis tau ntes.

WtermsIG ( txheej xwm )

rov qab tus naj npawb ntawm cov teeb liab uas ua rau tus me nyuam cov txheej txheem los mus txiav. Qhov kev lag luam no tsuas yog soj ntsuam tau tias WIFSIGNALED rov qab tsis dhau xoom.

WIFSTOPPED ( raws li txoj cai )

rov qab muaj tseeb yog hais tias tus me nyuam tus txheej txheem uas tshwm sim los ntawm txoj kev rov qab; qhov no tsuas yog ua tau yog hais tias hu tau siv WUNTRACED .

WSTOPSIG ( txheej xwm )

rov qab tus naj npawb ntawm cov teeb liab uas tau ua rau tus me nyuam tso tseg. Qhov kev lag luam no tsuas yog soj ntsuam yog tias WIFSTOPPED rov qab tsis dhau xoom.

Ib txhia versions ntawm Unix (xws li Linux, Solaris, tiam sis tsis AIX, SunOS) kuj txhais tau ib qho WCOREDUMP (tus txheej txheem ) los ntsuas seb tus menyuam txoj kev ua txhaum tub ntxhais. Tsuas siv qhov no xa tuaj rau hauv #ifdef WCOREDUMP ... #endif.

Kev Xa Rov Qab

Tus txheej txheem ID ntawm tus me nyuam uas tawm, los yog xoom yog tias siv WNOHANG thiab tsis muaj tus me nyuam, los yog-1 rau kev ua yuam kev (nyob rau hauv qhov teeb meem uas yog errno teeb tsa tus nqi tsim nyog).

Tsis raug

ECHILD

yog tias tus txheej txheem teev nyob rau hauv Disease pid tsis muaj los yog tsis yog tus me nyuam ntawm txoj kev sib tham. (Qhov no tshwm sim tau rau tus kheej tus me nyuam yog tias qhov kev txiav txim rau SIGCHLD raug teem rau SIG_IGN. Saib ntawm LINUX NOTES section txog threads.)

EINVAL

yog tias cov kev xaiv cav tsis muaj tseeb.

EINTR

yog WNOHANG tsis tau teem thiab ib lub teeb liab nres lossis SIGCHLD tau ntes tau.