C ++ में सिग्नल () फ़ंक्शन निर्दिष्ट सिग्नल के लिए त्रुटि हैंडलर सेट करता है।
संकेत () प्रोटोटाइप
void (* संकेत (int sig, void (* func) (int))) (int);
signal
समारोह संकेत को संभालने के लिए एक विधि को परिभाषित करता है। सिग्नल हैंडलर सेट किया जा सकता है ताकि निम्नलिखित में से एक कार्रवाई की जाए:
- सिग्नल की डिफ़ॉल्ट हैंडलिंग।
- संकेत पर ध्यान न दें।
- संकेत को संभालने के लिए उपयोगकर्ता परिभाषित फ़ंक्शन को कहा जाता है।
इसे हेडर फ़ाइल "> हेडर फ़ाइल में परिभाषित किया गया है।
संकेत () पैरामीटर
- sig: सिग्नल हैंडलर द्वारा हैंडल करने का संकेत। यह निम्न में से एक मान ले सकता है:
- SIGABRT
- SIGFPE
- SIGILL
- SIGINT
- SIGSEGV
- SIGTERM
- हैंडलर: सिग्नल हैंडलर जो सिग्नल को हैंडल करता है। यह निम्नलिखित में से एक हो सकता है:
- SIG_DFL: डिफ़ॉल्ट हैंडलिंग।
- SIG_IGN: सिग्नल पर ध्यान न दें।
- किसी फ़ंक्शन के लिए सूचक: सिग्नल को संभालने के लिए उपयोगकर्ता परिभाषित फ़ंक्शन। फ़ंक्शन का हस्ताक्षर निम्नलिखित के बराबर होना चाहिए:
शून्य मज़ा (इंट सिग);
संकेत () वापसी मूल्य
सफलता पर, यह पिछला सिग्नल हैंडलर लौटाता है और विफलता पर SIG_ERR को वापस कर दिया जाता है।
उदाहरण: संकेत () फ़ंक्शन कैसे काम करता है
#include #include using namespace std; sig_atomic_t signalled = 0; void handler(int sig) ( signalled = 1; ) int main() ( signal(SIGINT, handler); raise(SIGINT); if (signalled) cout << "Signal is handled"; else cout << "Signal is not handled"; return 0; )
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:
सिग्नल संभाला है