सी ++ एटैक्सिट () - सी ++ स्टैंडर्ड लाइब्रेरी

C ++ में एटैक्सिट () फ़ंक्शन सामान्य प्रोग्राम समाप्ति पर कॉल किए जाने वाले फ़ंक्शन को पंजीकृत करता है।

C ++ में एटैक्सिट () फ़ंक्शन सामान्य प्रोग्राम समाप्ति पर कॉल किए जाने वाले फ़ंक्शन को पंजीकृत करता है।

atexit () प्रोटोटाइप

 बाहरी int atexit (void (* func) (void));

यह फ़ंक्शन हेडर फ़ाइल में परिभाषित किया गया है।

atexit () पैरामीटर

  • func: सामान्य कार्यक्रम समाप्ति पर बुलाए जाने वाले कार्य को इंगित करता है।

atexit () रिटर्न वैल्यू

एटैक्सिट () फ़ंक्शन रिटर्न:

  • शून्य यदि फ़ंक्शन पंजीकरण सफल है।
  • यदि फ़ंक्शन पंजीकरण विफल हुआ तो शून्य नहीं।

उदाहरण 1: कैसे काम करता है?

 #include #include using namespace std; void bye() ( cout << "Program Exiting Successfully"; ) int main() ( int x; x = atexit(bye); if (x != 0) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 पंजीकरण सफल कार्यक्रम सफलतापूर्वक बाहर निकलना

समाप्ति पर निष्पादित करने के लिए एक से अधिक फ़ंक्शन पंजीकृत किए जा सकते हैं।

यदि एक से अधिक atexit फ़ंक्शन पंजीकृत हैं, तो उन्हें रिवर्स ऑर्डर में निष्पादित किया जाता है, अर्थात पहले से पंजीकृत फ़ंक्शन को निष्पादित किया जाता है। एक ही फ़ंक्शन को एक से अधिक बार पंजीकृत किया जा सकता है।

फ़ंक्शन कॉल की संख्या जो एटिक्सिट () के साथ पंजीकृत हो सकती है, विशेष पुस्तकालय कार्यान्वयन पर निर्भर करती है। हालांकि न्यूनतम सीमा 32 है।

उदाहरण 2: एटैक्सिट () के साथ कई फ़ंक्शन को पंजीकृत करना

 #include #include using namespace std; void exit1() ( cout << "Exit Function 1" << endl; ) void exit2() ( cout << "Exit Function 2" << endl; ) void exit3() ( cout << "Exit Function 3" << endl; ) int main() ( int x1, x2, x3; /* Executed at last*/ x1 = atexit(exit1); x2 = atexit(exit2); /* Executed at first */ x3 = atexit(exit3); if ((x1 != 0) or (x2 != 0) or (x3 != 0)) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 पंजीकरण सफल बाहर निकलें समारोह 3 बाहर निकलें समारोह 2 बाहर निकलें समारोह 1

यदि एक पंजीकृत फ़ंक्शन समाप्ति पर बुलाया जाता है तो एक अनहेल्ड अपवाद फेंकता है, समाप्ति () फ़ंक्शन को कहा जाता है।

उदाहरण 3: एटैक्सिट () फंक्शन के साथ अनहेल्डेड अपवाद को फेंकना

 #include #include using namespace std; void bye() ( cout << "Generates Exception"; int a = 5, b = 0; int x = a/b; /* Program will terminate here */ cout << "Division by zero"; ) int main() ( int x; x = atexit(bye); if (x != 0) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 पंजीकरण सफल उत्पन्न होता है

दिलचस्प लेख...