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
-
Windows11で応答しないプログラムプロセスをすべて終了する方法
使用しているプログラムがアクションへの応答を停止すると、クラッシュして焼失した可能性があります。応答しないプログラムは、最も一般的な種類のソフトウェアクラッシュの1つです。プログラムプロセスが応答しない場合のエラーメッセージには、「アプリケーションが応答していません。このプロセスを終了しますか?」と表示されます。 複数のプロセス(またはタスク)が応答を停止する場合があります。その場合、応答しないすべてのプログラムプロセスを終了するためのショートカットが役立つ場合があります。これは、Windows11で応答しないすべてのプログラムプロセスを終了するショートカットを設定する方法です。 すべての応
-
エラー1083、サービスが実行するように構成されている実行可能プログラムがサービスを実装していません
エラー1083を受け取った場合、このサービスを実行するように構成されている実行可能プログラムはサービスを実装していません Windowsサービスマネージャーを使用してサービスを開始している間。この投稿は、問題のトラブルシューティングに役立ちます。ほとんどすべてのプログラムでコンピュータ上でサービスを実行する必要があるため、対応するレジストリキーにサービスがリストされていない場合、Windowsコンピュータでそのようなメッセージが表示される可能性があります。 WindowsはWindowsストアサービス(WSService)を開始できませんでした エラーメッセージ全体は次のようになりま