Skip to main content

వేచి - Linux కమాండ్ - Unix Command

Anonim

పేరు

వేచి, waitpid - ప్రక్రియ రద్దు కోసం వేచి

సంక్షిప్తముగా

# ఉన్నాయి # ఉన్నాయి

pid_t వేచి (int * స్థితి );pid_t waitpid (pid_t పిఐడి , Int * స్థితి , int ఎంపికలు );

వివరణ

దివేచి ఫంక్షన్ ప్రస్తుత ప్రక్రియను అమలు చేయడాన్ని నిలిపివేస్తుంది, లేదా బాల నుండి నిష్క్రమించబడే వరకు లేదా ప్రస్తుత ప్రక్రియను తొలగించటానికి లేదా సిగ్నల్ హ్యాండ్లింగ్ ఫంక్షన్కు కాల్ చేయటానికి ఒక సిగ్నల్ పంపిణీ చేసేవరకు. ఒక పిల్లవాడు ఇప్పటికే కాల్ సమయం (ఒక "జోంబీ" ప్రక్రియ అని పిలవబడే) నుండి నిష్క్రమించినట్లయితే, ఫంక్షన్ వెంటనే వస్తుంది. పిల్లలచే ఉపయోగించబడిన ఏవైనా సిస్టమ్ వనరులు విముక్తి పొందాయి.

దిwaitpid ఫంక్షన్ పిల్లల ద్వారా పేర్కొన్నట్లుగా ప్రస్తుత ప్రక్రియ యొక్క అమలును నిలిపివేస్తుంది పిఐడి వాదన నిష్క్రమించింది, లేదా ఒక సిగ్నల్ పంపిణీ చేయబడే వరకు, ప్రస్తుత ప్రక్రియను తొలగించటానికి లేదా సిగ్నల్ హ్యాండ్లింగ్ ఫంక్షన్కు కాల్ చేయడం. అభ్యర్థించిన పిల్లవాడు పిఐడి కాల్ సమయం (ఇప్పటికే "జోంబీ" ప్రక్రియ అని పిలవబడే) ద్వారా ఇప్పటికే నిష్క్రమించింది, ఫంక్షన్ వెంటనే తిరిగి వస్తుంది. పిల్లలచే ఉపయోగించబడిన ఏవైనా సిస్టమ్ వనరులు విముక్తి పొందాయి.

విలువ పిఐడి వీటిలో ఒకటి కావచ్చు:

< -1

ఇది ఏ పిల్లల ప్రాసెస్ కోసం వేచి ఉండాలో అనగా దీని ప్రాసెస్ సమూహం ID సంపూర్ణ విలువకు సమానంగా ఉంటుంది పిఐడి .

-1

ఏ పిల్లల ప్రక్రియ కోసం వేచి అంటే; ఇది అదే ప్రవర్తనవేచి ప్రదర్శనలు.

0

ఇది ఏ ప్రక్రియలో అయినా ప్రాసెస్ సమూహం ID కాలింగ్ ప్రాసెస్కు సమానంగా ఉంటుందని అర్థం.

> 0

అంటే దీని ప్రాసెస్ ID విలువకు సమానంగా ఉన్న పిల్లల కోసం వేచి ఉండాలని అర్థం పిఐడి .

విలువ ఎంపికలు ఈ క్రింది స్థిరాంకాలలో సున్నా లేదా ఎక్కువ OR యొక్కది:

WNOHANG

ఏ పిల్లవాడు బయటికి వచ్చినా వెంటనే తిరిగి రావాలని అర్థం.

WUNTRACED

ఇది నిలిపివేయబడిన పిల్లల కోసం కూడా తిరిగి వస్తుంది మరియు దీని స్థితి నివేదించబడలేదు.

(Linux- మాత్రమే ఎంపికలు కోసం, క్రింద చూడండి.)

ఉంటే స్థితి కాదుశూన్య, వేచి లేదాwaitpid స్థానం లో నిల్వ స్థితి సమాచారం ద్వారా సూచించింది స్థితి .

ఈ స్థితి కింది మాక్రోస్తో విశ్లేషించబడుతుంది (ఈ మాక్రోస్ స్టాఫర్ బఫర్ (aపూర్ణాంకానికి) ఒక వాదనగా --- బఫర్కి ఒక పాయింటర్ కాదు):

WIFEXITED ( స్థితి )

పిల్లవాడు సాధారణంగా బయటికి వెళ్తే సున్నా కానిది.

WEXITSTATUS ( స్థితి )

పిల్లల యొక్క రిటర్న్ కోడ్ యొక్క కనీసం ఎనిమిది బిట్లకు మూల్యాంకనం చేస్తుంది, ఇది రద్దు చేయటానికి వాదనగా సెట్ చేయబడి ఉండవచ్చునిష్క్రమణ () లేదా ఒక వాదనగా తిరిగి ప్రధాన కార్యక్రమంలో ప్రకటన. ఈ స్థూల విశ్లేషణ మాత్రమే పరిగణించబడుతుందిWIFEXITEDసున్నా కాని తిరిగి వచ్చింది.

WIFSIGNALED ( స్థితి )

పిల్లల సిగ్నల్ కారణంగా చికిత్సా విధానం చిక్కుకున్నట్లయితే అది నిజం తిరిగి వస్తుంది.

WTERMSIG ( స్థితి )

పిల్లల ప్రక్రియ రద్దు చేయటానికి కారణమైన సిగ్నల్ సంఖ్యను తిరిగి అందిస్తుంది. ఈ స్థూల విశ్లేషణ మాత్రమే పరిగణించబడుతుందిWIFSIGNALED సున్నా కాని తిరిగి వచ్చింది.

WIFSTOPPED ( స్థితి )

తిరిగి రావడానికి కారణమైన పిల్లల ప్రక్రియ ప్రస్తుతం నిలిపివేయబడితే, నిజం తిరిగి వస్తుంది; కాల్ ఉపయోగించినట్లయితే ఇది సాధ్యమవుతుందిWUNTRACED.

WSTOPSIG ( స్థితి )

పిల్లల ఆపడానికి కారణమైన సిగ్నల్ సంఖ్యను తిరిగి అందిస్తుంది. ఈ స్థూల విశ్లేషణ మాత్రమే పరిగణించబడుతుందిWIFSTOPPED సున్నా కాని తిరిగి వచ్చింది.

యునిక్స్ యొక్క కొన్ని సంస్కరణలు (ఉదా., లినక్స్, సోలారిస్, కానీ AIX, సన్సోస్) కూడా ఒక స్థూలWCOREDUMP ( స్థితి ) చైల్డ్ ప్రాసెస్ కోర్ ను డంప్ చేసినా లేదో పరీక్షించడానికి. WCOREDUMP #ifdef లో ఈ పరివేష్టితాన్ని ఉపయోగించు … మాత్రమే.

తిరిగి విలువ

బాల యొక్క ప్రక్రియ ID నిష్క్రమించిన, లేదా సున్నా ఉంటేWNOHANG ఉపయోగించారు మరియు ఎటువంటి చైల్డ్ అందుబాటులో లేదు, లేదా -1 లోపం (ఏ సందర్భంలో errno తగిన విలువకు సెట్ చేయబడింది).

లోపాలు

ECHILD

ప్రక్రియ పేర్కొన్నట్లయితే పిఐడి ఉనికిలో లేదు లేదా కాలింగ్ ప్రాసెస్ యొక్క బిడ్డ కాదు. (SIGCHLD కోసం చర్యను SIG_IGN కు సెట్ చేస్తే, ఇది సొంత పిల్లల కోసం జరగవచ్చు.దీని గురించి థ్రెడ్ల గురించి LINUX NOTES విభాగం చూడండి.)

EINVAL

ఉంటే ఎంపికలు వాదన చెల్లనిది.

EINTR

ఉంటేWNOHANG సెట్ చేయబడలేదు మరియు అన్బ్లాక్డ్ సిగ్నల్ లేదా aSIGCHLD పట్టుబడ్డాడు.