प्रोग्रामिंग में जब कोई प्रोग्राम खराब होता है और टर्मिनल कंपाइलर में असामान्य रूप से चलता है तो प्रोग्रामर के पास प्रोग्राम को चलने से स्पष्ट रूप से रोकने की शक्ति होती है। प्रोग्राम को स्पष्ट रूप से रोकने के लिए, उपयोगकर्ता को सही कीबोर्ड शॉर्टकट पता होना चाहिए जिसे दबाए जाने की आवश्यकता है।
कोड के ब्लॉक के निष्पादन को समाप्त करने के लिए, दो प्रकार के कीबोर्ड शॉर्टकट का उपयोग किया जाता है।
-
Ctrl+c - इसका उपयोग प्रोग्राम के निष्पादन को रोकने के लिए किया जाता है, i/o संचालन को पूरा करने में थोड़ा समय लगता है और फिर निष्पादन को निलंबित कर देता है। यह एक SIGINT . भेजता है प्रक्रिया को संकेत जो समाप्त हो जाता है। कुछ भाषाओं में, इसे SIGINT संभालने के तरीके हैं सी में सिग्नल फ़ंक्शन की तरह।
-
Ctrl+z- इसका उपयोग प्रोग्राम के निष्पादन को रोकने के लिए किया जाता है, प्रक्रिया से संबंधित सभी कार्य बंद हो जाते हैं और निष्पादन निलंबित हो जाता है। यह एक SINTSTP . भेजता है प्रक्रिया के लिए संकेत जो कार्यक्रम को समाप्त करता है, हालांकि कार्यान्वयन समान है लेकिन यह संकेत दूसरों की तुलना में अधिक शक्तिशाली है। इसे भी संभाला जा सकता है।
यहां, हम एक कोड लिखेंगे जो ctrl+z कॉल को पार करने में सक्षम होगा। और निलंबित होने के बजाय प्रोग्राम प्रिंट करेगा "ctrl+z इस कोड को निलंबित नहीं कर सकता .
जैसा कि ऊपर चर्चा की गई है, ctrl+z कॉल को C प्रोग्रामिंग लैंग्वेज में हैंडल किया जा सकता है। जब SINTSTP कार्यक्रम की प्रक्रिया को समाप्त करने के लिए संकेत आमंत्रित किया जाता है। हम फिर से परिभाषित करेंगे कि यह संकेत क्या करता है ताकि मैं कोड को समाप्त न करूँ और उपयोग किए जाने पर एक लाइन प्रिंट न करूँ।
इस प्रकार की चीज़ को संभालने के लिए सिग्नल () पद्धति का उपयोग किया जाता है।
उदाहरण
#include <stdio.h> #include <signal.h> void signalhandler(int sig_num){ signal(SIGTSTP, signalhandler); printf("Cannot execute Ctrl+Z\n"); } int main(){ int a = 1; signal(SIGTSTP, signalhandler); while(a){ } return 0; }
आउटपुट
// an infinite loop