ページ 11

C言語:ループ中のシグナルについて

Posted: 2008年11月25日(火) 20:59
by 自尊心
初投稿で、プログラミングの初心者です。
内容や態度についておかしな点がありましたら、指摘してください。

内容ですが、
ループを回している最中に SIGINT のシグナルを送り、ハンドラでフラグを立て、それによってループを抜けるようにしているのですが、ループが高速な為か、シグナルを受け取る際にループカウンタが進みすぎてしまうことがあります。
これに対する対策等はあるのでしょうか?

Re:C言語:ループ中のシグナルについて

Posted: 2008年11月25日(火) 21:32
by 紅葉
素人の意見で申し訳ないのですが
Sleep関数を使ってほんの少しでも遅らせてみてはどうでしょうか?

Re:C言語:ループ中のシグナルについて

Posted: 2008年11月25日(火) 21:41
by 自尊心
回答ありがとうございます。

しかし、ループをかなりの回数回す(10000以上)を想定しているので、できれば遅らせるようなことはしたくないのです。
他に方法はないでしょうか?

Re:C言語:ループ中のシグナルについて

Posted: 2008年11月25日(火) 23:54
by バグ
その方法では厳密に同期を取るのは難しいように思います。