इस सेक्शन में हम देखेंगे कि C में ऐसा प्रोग्राम कैसे लिखें जिसे Ctrl + C कुंजी से समाप्त नहीं किया जा सकता।
Ctrl + C कीबोर्ड इंटरप्ट जनरेट करता है, और यह वर्तमान प्रोसेस के निष्पादन को रोक देता है। यहां जब हम Ctrl + C दबाएंगे, तो यह एक मैसेज प्रिंट करेगा फिर निष्पादन जारी रखेगा। इस कार्यक्षमता का उपयोग करने के लिए, हम C में सिग्नल हैंडलिंग तकनीक का उपयोग करेंगे। जब Ctrl + C दबाया जाता है तो यह SIGINT सिग्नल जनरेट करता है। निम्नलिखित सूची में कुछ अन्य सिग्नल्स और उनकी कार्यक्षमताएं हैं।
| सिग्नल | विवरण |
|---|---|
| SIGABRT | असामान्य समाप्ति इंगित करता है |
| SIGFPE | फ्लोटिंग पॉइंट एक्सेप्शन इंगित करता है |
| SIGILL | अमान्य निर्देश इंगित करता है |
| SIGINT | प्रोग्राम को भेजे गए इंटरएक्टिव अटेंशन रिक्वेस्ट को इंगित करता है |
| SIGSEGV | अमान्य मेमोरी एक्सेस इंगित करता है |
| SIGTERM | प्रोग्राम को भेजे गए टर्मिनेशन रिक्वेस्ट को इंगित करता है |
यहां हम इन सिग्नल्स को हैंडल करने के लिए स्टैंडर्ड C लाइब्रेरी फंक्शन signal() का उपयोग करेंगे।
उदाहरण कोड
#include <stdio.h>
#include <signal.h>
void sigint_handler(int signum) {
// SIGINT के लिए हैंडलर
// अगली बार SIGINT पकड़ने के लिए हैंडलर रीसेट करें
signal(SIGINT, sigint_handler);
printf("Cannot be stopped using Ctrl+C \n");
fflush(stdout);
}
main() {
signal(SIGINT, sigint_handler);
while(1) { // अनंत लूप बनाएं
}
}
आउटपुट
Cannot be stopped using Ctrl+C Cannot be stopped using Ctrl+C