重複の可能性:
CでCtrl-Cをキャッチ
私はCコマンドラインプログラムを作成していて、ctrl-cがそれを強制終了しないようにしようとしています。どうすればそれができるかについてのアイデアはありますか?
重複の可能性:
CでCtrl-Cをキャッチ
私はCコマンドラインプログラムを作成していて、ctrl-cがそれを強制終了しないようにしようとしています。どうすればそれができるかについてのアイデアはありますか?
プログラムの実行中にCtrl-Cを押すと、プロセスがSIGINTと呼ばれるシグナルを受信します。プロセスがこのシグナルを受信したときのデフォルトのアクションは、それ自体を終了することです。
したがって、目標はこの動作を変更することです。この
関数を使用してsignal
、ctrl-cのときにプロセスに送信されるシグナルをキャッチします。
あなたはこのようなもので行くべきです:
signal(SIGINT, handler_function);//handler_function is a void returning function that takes one int paramter, you can do nothing there if you just want to prevent your process from terminating.
PS詳細についてはmanページをご覧ください:D
PPS信号が何であるかよくわからない場合は、このウィキペディアのページを参照して、混乱を招くものを見つけたら、お知らせください。
私がそれをどのように行うことができるかについてのアイデア
SIG_IGN処理の使用を無視SIGINT
するか、何もしないハンドラーでキャッチします。一部の実装では、sigignore
関数さえあります。
とにかく、あなたは大丈夫なはずです:
signal(SIGINT, SIG_IGN);
SIG_IGN
C11-7.14で指定されているので、持ち運びに便利です。