लिनक्स कमांड जाणून घ्या - थांबा

नाव

प्रतीक्षा, थांबा - प्रक्रिया संपुष्टात येणे प्रतीक्षा

सारांश

#include
#include

pid_t प्रतीक्षा (पूर्ण * स्थिती );
pid_t waitpid (pid_t pid , int * स्थिती , इंरिज पर्याय );

वर्णन

प्रतीक्षा फंक्शन वर्तमान प्रक्रियेचे अंमलबजावणी निलंबित करते, जोपर्यंत एक मुलगा बाहेर पडत नाही, किंवा सिग्नल वितरित होईपर्यंत, ज्याची कार्यवाही वर्तमान प्रक्रिया बंद करायची असते किंवा सिग्नल हाताळणी फंक्शन कॉल करते. जर एखाद्या मुलाने आधीच कॉलच्या वेळेस (एक तथाकथित "स्वतंत्रपणे निर्णय घेण्याची कुवत नसलेला असा मनुष्य" प्रक्रिया) बाहेरून बाहेर पडले तर, कार्य लगेच मिळते. मुलासाठी वापरले जाणारे कोणतेही सिस्टम स्त्रोत मुक्त आहेत.

Waitpid फंक्शन चालू प्रक्रियेचे अंमलबजावणी निलंबित करते, जोपर्यंत pid argument ने निर्दिष्ट केलेल्या मुलाला बाहेर पडत नाही , किंवा सिग्नल वितरित होईपर्यंत, ज्याची कार्यपद्धती सद्य प्रक्रिया थांबवायची असते किंवा सिग्नल हाताळणी फंक्शन कॉल करते. जर पीड द्वारे विनंती केलेली एखादी मुल आधीच कॉलच्या (एक तथाकथित "स्वतंत्रपणे निर्णय घेण्याची कुवत नसलेला असा मनुष्य" प्रक्रिया) वेळ पासून बाहेर पडला आहे, तर कार्य लगेच मिळते. मुलासाठी वापरले जाणारे कोणतेही सिस्टम स्त्रोत मुक्त आहेत.

Pid ची किंमत खालीलपैकी एक असू शकते:

<-1

ज्याचा अर्थ असा आहे की कोणत्याही बाल प्रक्रियेची प्रतीक्षा करणे ज्याची प्रक्रिया गट आयडी पीडच्या संपूर्ण मूल्याएवढी असते.

-1

ज्यायोगे मुलांच्या कोणत्याही प्रक्रियेला थांबावे लागते; हे त्याच वर्तन आहे जे प्रदर्शित होण्याची प्रतीक्षा करतात.

0

याचा अर्थ असा की कोणत्याही बाल प्रक्रियेसाठी प्रतीक्षा करणे ज्याची प्रक्रिया गट आयडी कॉलिंग प्रक्रियेच्या समान आहे.

> 0

ज्याची प्रक्रिया ID pid ची व्हॅल्यू असते त्या मुलाची प्रतीक्षा करणे म्हणजे.

पर्यायांचे मूल्य एक किंवा शून्य किंवा खालील स्थिरांकांपेक्षा जास्त आहे:

WNOHANG

याचा अर्थ असा नाही जर मुलाला बाहेर पडत नसेल तर ताबडतोब परत येणे.

WUNTRACED

याचा अर्थ असा होतो की ज्या विद्यार्थ्यांना रोखले जाते, आणि ज्याची स्थिती कळविण्यात आली नाही त्यांच्यासाठीही परत येणे.

(केवळ-Linux साठी पर्याय, खाली पहा.)

स्थिती नल नाही तर, स्थितीनुसार निर्देशित केलेल्या स्थानावर थांबा किंवा प्रतीक्षापीड स्टोअर स्थिती माहिती द्या.

ही स्थिती खालील मॅक्रोसह मूल्यांकन केली जाऊ शकते (या मॅक्रो स्टॅट बफर ( इंट ) ला एक तर्क म्हणून घेतात --- बफरसाठी पॉइंटर नाही!):

WIFEXITED ( स्थिती )

जर मुलाला सर्वसाधारणपणे बाहेर पडले तर ते शून्य आहे.

WEXITSTATUS ( स्थिती )

मुलाच्या रिटर्न कोडच्या कमीत कमी महत्त्वपूर्ण आठ बिटांचे मूल्यमापन केले जाते, जे बाहेर पडण्यासाठी कॉल करण्यासाठी तर्क म्हणून किंवा कदाचित मुख्य प्रोग्राममध्ये रिटर्न स्टेटमेंटचे तर्क म्हणून सेट केले जाऊ शकते. हे मॅक्रो मूल्यांकन केले जाऊ शकते जर WIFEXITED ने परत न शून्य केले

WIFSIGNALED ( स्थिती )

पकडले न गेलेल्या सिग्नलमुळे मुलाची प्रक्रिया बंद पडली तर ते खरे ठरते.

WTERMSIG ( स्थिती )

सिग्नलची संख्या परत करते ज्यामुळे बालक प्रक्रिया समाप्त झाली. हा मॅक्रो मूल्यांकन केला जाऊ शकतो जर WIFSIGNALED परत नॉन-शून्य केले असेल.

WIFSTOPPED ( स्थिती )

रिटर्न चालू झाल्यास बाल प्रक्रिया सध्या थांबली असल्यास सत्य खरे होते; हे केवळ WUNTRACED द्वारे कॉल केले असल्यास शक्य आहे.

WSTOPSIG ( स्थिती )

ज्यामुळे मुलाला थांबणे शक्य होते त्या सिग्नलची संख्या मिळते. हा मॅक्रो मूल्यांकन केला जाऊ शकतो जर WIFSTOPPED ने शून्य-शून्य परत केले.

युनिक्सच्या काही आवृत्त्या (उदा. लिनक्स, सॉलारिस, परंतु एआयएक्स , सनओएस) देखील मुलाच्या प्रक्रियेला कोर डंप केलेले आहे किंवा नाही हे तपासण्यासाठी मेक्रो WCOREDUMP ( स्थिती ) परिभाषित करते. केवळ हे #ifdef WCOREDUMP ... # मध्ये जोडलेले सोबत वापरा

रिटर्न मूल्य

जर मुलाला वानोहंग वापरण्यात आला असेल आणि कोणताही मूल उपलब्ध नसेल किंवा त्रुटीवर -1 असल्यास (ज्या प्रकरणात चूक एखाद्या योग्य मूल्यासाठी सेट केली असेल) मुलाची प्रक्रिया आयडी

त्रुटी

ECHILD

प्रक्रिया मध्ये निर्दिष्ट केल्यास pid अस्तित्वात नाही किंवा कॉलिंग प्रक्रियेचा मूल नाही. (जर SIGCHLD साठी कृती SIG_IGN वर सेट केली असेल तर हे एखाद्याच्या स्वत: च्या मुलासाठी होऊ शकते. थ्रेड बद्दल लिनक्स नोट्स विभाग देखील पहा.)

EINVAL

पर्याय वितर्क अवैध असल्यास.

EINTR

जर WNOHANG सेट केले नसेल आणि एक अनावरोधित सिग्नल किंवा SIGCHLD पकडले गेले असेल.