Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Ctrl+Cを押しても終了しないCプログラムを作成する


このセクションでは、Ctrl+Cキーで終了できないプログラムを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) { //Handler for SIGINT
   //Reset handler to catch SIGINT next time.
   signal(SIGINT, sigint_handler);
   printf("Cannot be stopped using Ctrl+C \n");
   fflush(stdout);
}
main () {
   signal(SIGINT, sigint_handler);
   while(1) { //create infinite loop
   }
}

出力

Cannot be stopped using Ctrl+C
Cannot be stopped using Ctrl+C

  1. Windows11で応答しないプログラムプロセスをすべて終了する方法

    使用しているプログラムがアクションへの応答を停止すると、クラッシュして焼失した可能性があります。応答しないプログラムは、最も一般的な種類のソフトウェアクラッシュの1つです。プログラムプロセスが応答しない場合のエラーメッセージには、「アプリケーションが応答していません。このプロセスを終了しますか?」と表示されます。 複数のプロセス(またはタスク)が応答を停止する場合があります。その場合、応答しないすべてのプログラムプロセスを終了するためのショートカットが役立つ場合があります。これは、Windows11で応答しないすべてのプログラムプロセスを終了するショートカットを設定する方法です。 すべての応

  2. エラー1083、サービスが実行するように構成されている実行可能プログラムがサービスを実装していません

    エラー1083を受け取った場合、このサービスを実行するように構成されている実行可能プログラムはサービスを実装していません Windowsサービスマネージャーを使用してサービスを開始している間。この投稿は、問題のトラブルシューティングに役立ちます。ほとんどすべてのプログラムでコンピュータ上でサービスを実行する必要があるため、対応するレジストリキーにサービスがリストされていない場合、Windowsコンピュータでそのようなメッセージが表示される可能性があります。 WindowsはWindowsストアサービス(WSService)を開始できませんでした エラーメッセージ全体は次のようになりま