Heim > Backend-Entwicklung > C++ > C-Programm, das nicht anhält, wenn Strg+Z gedrückt wird

C-Programm, das nicht anhält, wenn Strg+Z gedrückt wird

WBOY
Freigeben: 2023-09-19 18:13:02
nach vorne
1407 Leute haben es durchsucht

C-Programm, das nicht anhält, wenn Strg+Z gedrückt wird

Bei der Programmierung hat der Programmierer das Recht, die Ausführung des Programms explizit zu stoppen, wenn ein Programm eine Fehlfunktion aufweist und im Terminal-Compiler auf unerwartete Weise ausgeführt wird. Um ein Programm explizit zu stoppen, muss der Benutzer die richtige Tastenkombination kennen, die er drücken muss.

Um die Ausführung eines Codeblocks zu beenden, werden zwei Arten von Tastaturkürzeln verwendet.

  • Strg+c – Wird verwendet, um die Ausführung eines Programms zu stoppen, das einige Zeit braucht, um Ein-/Ausgabevorgänge abzuschließen, und dann die Ausführung anhält. Es sendet ein SIGINT-Signal an den Prozess und der Prozess wird beendet. In einigen Sprachen kann dies über eine Signalfunktion wie SIGINT in der C-Sprache gehandhabt werden.

  • Strg+z – Wird verwendet, um die Ausführung eines Programms zu stoppen. Alle mit dem Prozess verbundenen Aufgaben werden geschlossen und die Ausführung wird angehalten. Es sendet ein SINTSTP-Signal an den Prozess und beendet die Ausführung des Programms. Obwohl es auf die gleiche Weise implementiert ist, ist dieses Signal stärker als die anderen. Dies kann auch gehandhabt werden.

Hier schreiben wir einen Code, der den Aufruf von Strg+Z umgehen kann. Anstatt angehalten zu werden, gibt das Programm „Strg+Z kann diesen Code nicht anhalten“ aus.

Wie oben erwähnt, kann die Programmiersprache C den Aufruf von Strg+Z verarbeiten. Wenn das Signal SINTSTP aufgerufen wird, um den Programmprozess zu beenden, definieren wir die Rolle dieses Signals neu, sodass es bei Verwendung den Code nicht beendet und eine Zeile ausgibt. Die Methode

signal() wird verwendet, um mit solchen Dingen umzugehen.

Beispiel

Demonstration

#include <stdio.h>
#include <signal.h>
void signalhandler(int sig_num){
   signal(SIGTSTP, signalhandler);
   printf("Cannot execute Ctrl+Z</p><p>");
}
int main(){
   int a = 1;
   signal(SIGTSTP, signalhandler);
   while(a){
   }
   return 0;
}
Nach dem Login kopieren

Ausgabe

// an infinite loop
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonC-Programm, das nicht anhält, wenn Strg+Z gedrückt wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage