C ++ at_quick_exit () - C ++ मानक पुस्तकालय

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

At_quick_exit () फ़ंक्शन के साथ पंजीकृत फ़ंक्शन को quick_exit () फ़ंक्शन कहा जाता है।

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

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

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

at_quick_exit () पैरामीटर

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

at_quick_exit () वापसी मान

At_quick_exit () फ़ंक्शन रिटर्न:

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

उदाहरण 1: at_quick_exit () फ़ंक्शन कैसे काम करता है?

 #include #include using namespace std; void bye() ( cout << "Program Exiting via quick_exit()"; ) int main() ( at_quick_exit(bye); cout << "Inside Main" << endl; quick_exit(0); return 0; )

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

 Quick_exit () के माध्यम से मुख्य कार्यक्रम से बाहर होना

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

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

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

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

 #include #include using namespace std; void quick_exit1() ( cout << "Exit Function 1" << endl; ) void quick_exit2() ( cout << "Exit Function 2" << endl; ) void quick_exit3() ( cout << "Exit Function 3" << endl; ) int main() ( int x1, x2, x3; /* Executed at last*/ x1 = at_quick_exit(quick_exit1); x2 = at_quick_exit(quick_exit2); /* Executed at first */ x3 = at_quick_exit(quick_exit3); if ((x1 != 0) or (x2 != 0) or (x3 != 0)) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; quick_exit(0); )

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

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

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

उदाहरण 3: at_quick_exit () फ़ंक्शन के साथ अनहेल्ड अपवाद फेंकना

 #include #include using namespace std; void bye() ( cout << "Generates Exception"; int a = 5, b = 0; int x = a/b; ) int main() ( int x; x = at_quick_exit(bye); if (x != 0) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; quick_exit(0); )

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

 पंजीकरण सफल जनन अपवाद (कार्यक्रम त्रुटि के साथ समाप्त होगा)

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