No.2ベストアンサー
- 回答日時:
>ここでは2度目の SIGINT に対応するため、再度 signal() を実行してやります。
この処置が必要かどうかはシステム依存です。
Debian kernel 2.6.12-1では不要でした。
-- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
void sigint_handler(int sig)
{
char buf[BUFSIZ];
fprintf(stderr, "In sigint_handler, catch signal. input <CR>\n");
fgets(buf, BUFSIZ, stdin);
}
int main()
{
int i = 0;
signal(SIGINT, sigint_handler);
while (1) {
sleep(1);
fprintf(stderr, "In main, count %d\n", ++i);
}
}
この回答への補足
お待たせしまして大変申し訳ありません。m(__)m
実は質問後、上の指示で「Ctrl+Cは無効にしなくてもいい」となりました。
それでまだ試していません。すみません。
今は他のプロジェクトがあって不眠不休状態です。
もうしばらく、もうしばらくお待ちいただけないでしょうか?
本当にすみません…。
No.1
- 回答日時:
SIGINTを処理して、無視すればいいです。
signal(SIGINT, sigint_handler);
sigint_handler() は SIGINT を処理する自分で作るの関数です。
ここでは2度目の SIGINT に対応するため、再度 signal() を実行してやります。
次のようになります。
int main()
{
...................
signal(SIGINT, sigint_handler);
...................
}
void sigint_handler(int sig)
{
signal(SIGINT, sigint_handler);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- 画像編集・動画編集・音楽編集 ノンストップのmp3を、自分の好きなところでトラック分けできるフリーソフトを探しています。 5 2022/05/06 09:55
- その他(コンピューター・テクノロジー) PC利用中に勝手に起動する窓を消し去る方法を教えて下さい。 1 2023/05/08 16:48
- Windows 10 Windowsのショートカットキーの割り当てについて質問です。 Ctrl+Shift+Rという入力を 1 2022/11/07 09:53
- Word(ワード) Ctrl+Shift+C、Ctrl+Shift+Vが効かない方おられますか 3 2022/04/22 19:56
- iOS Windows OSにおける、ショートカットキーを受け取るソフトウェアの決定 5 2022/11/27 16:05
- Excel(エクセル) Excelでマウスを使って横スクロールしたい 7 2022/06/07 17:56
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Windows 10 Window10ショートカットキーで切り取り貼り付けするとコンテキストメニューと挙動が異なる理由は? 2 2022/04/16 17:57
- セキュリティソフト 複数のアンチウイルスソフト 対応について 4 2022/07/26 11:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
if と配列の組み合わせ
-
(int *)の意味
-
複数桁10進数の*桁目だけを抽出...
-
足して100になるような乱数のア...
-
ラップ関数とはどんなものですか?
-
エラー 添字が付けられた値が、...
-
C言語で三目並べをするプログラ...
-
円周率
-
return 1L
-
ポインタを使って関数の値の...
-
商と剰余を同時に求める(C言語)
-
PowerShellがうまくいかない
-
C言語 エラーの原因がわからな...
-
数字列を3桁ごとにカンマで区切...
-
質問です 下記のコードを分かり...
-
アスタリスクで正方形
-
systemの戻り値を取得する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
std::set<int> で、ある値が何...
-
C言語 エラーの原因がわからな...
-
c言語
-
system関数がうまくいかない
-
C++でvectorにテキストファイル...
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
return 1L
-
「{ } で囲むだけ」は正しい?
-
(マルチスレッド)_beginthrea...
-
PowerShellがうまくいかない
-
このプログラミング誰か教えて...
おすすめ情報