ホームページ  >  記事  >  バックエンド開発  >  Ctrl+Z を押しても一時停止しない C プログラム

Ctrl+Z を押しても一時停止しない C プログラム

WBOY
WBOY転載
2023-09-19 18:13:021320ブラウズ

Ctrl+Z を押しても一時停止しない C プログラム

プログラミングでは、プログラムが壊れて端末コンパイラで予期しない方法で実行された場合、プログラマはプログラムの実行を明示的に停止する権利を有します。プログラムを明示的に停止するには、ユーザーは押すための正しいキーボード ショートカットを知っている必要があります。

コード ブロックの実行を終了するには、2 種類のキーボード ショートカットを使用します。

  • Ctrl c - 入出力操作の完了に時間がかかり、実行を一時停止するプログラムの実行を停止するために使用されます。 SIGINT シグナルをプロセスに送信すると、プロセスが終了します。一部の言語では、この SIGINT は、C 言語と同様のシグナル関数を通じて処理できます。

  • Ctrl z - プログラムの実行を停止するために使用されます。プロセスに関連するすべてのタスクが閉じられ、実行が一時停止されます。 SINTSTP シグナルをプロセスに送信し、プログラムの実行を終了します。同じ方法で実装されていますが、この信号は他の信号よりも強力です。これでも対応可能です。

ここでは、ctrl z の呼び出しをバイパスできるコードを書きます。プログラムは一時停止される代わりに、「ctrl z ではこのコードを一時停止できません 」を出力します。

上で述べたように、C プログラミング言語は ctrl z への呼び出しを処理できます。プログラムのプロセスを終了するために SINTSTP シグナルが呼び出されるとき、このシグナルの役割を再定義して、使用時にコードを終了させずに行を出力するようにします。

signal() メソッドは、この種の処理に使用されます。

デモンストレーション

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

出力

// an infinite loop

以上がCtrl+Z を押しても一時停止しない C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。