Heim  >  Artikel  >  Backend-Entwicklung  >  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
WBOYnach vorne
2023-09-19 18:13:021320Durchsuche

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;
}

Ausgabe

// an infinite loop

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen