■掲示板に戻る■ 全部 1- 最新50

あらあら、宿題なのね?

1 :お母さん :02/06/16 18:18
麻衣の母、美砂子です。
宿題、判らないところがあったら、遠慮しないで聞いてくださいね。

キーワードがわかっていれば、googleで探しましょうね。
http://www.google.co.jp/



82 :名無しさん@お腹いっぱい。 :02/07/03 01:24
>>79
普通 sigaction。


83 :79 :02/07/03 22:49
>>80
ありがとうございます。
ついでにもひとつ

sig_flag = 1;


void signal_handler ( int sig )
{
signal ( SIGTERM, SIG_IGN );
sig_flag = 0;
}

main(int argc, char *argv[])

{       


if ( sig_flag == 0 ) {


}
while ( sig_flag == 1 ) {


}
みたいなことは可能でしか?

84 :名無しさん@お腹いっぱい。 :02/07/03 22:58
>>83
どういう動作を望んでいるのか、ちゃんと
文章で書かないと答えようがないよ…


85 :名無しさん@お腹いっぱい。 :02/07/03 23:05
>>83 ちゃんとvolatile付けとこうね。

86 :79 :02/07/03 23:09
>>84
スイマセン・・・
while ( sig_flag == 1 ) {
signal (SIGTERM, signal_handler );

}
↑ってな感じでsignal_handlerに飛ばしたいんす。

>>85
volatileってなんすか??

87 :79 :02/07/03 23:11
追加で
signal_handler に飛ばしたら
sig_flagが0になって
if文の処理してexitしたいんす。

へぼい説明でスマソ・・・

88 :名無しさん@お腹いっぱい。 :02/07/03 23:54
>>86
http://www.bohyoh.com/CandCPP/C/Library/signal.html
このあたりかな?>signalとvolatile
「静的記憶域期間をもつ変数」って言い回しがあるんだ...


89 :79 :02/07/04 00:16
>>88
アリガトウ
でもわかんねぇっす。
漏れのコーディソグじゃダメなのですか?

90 :名無しさん@お腹いっぱい。 :02/07/04 00:42
俺もよーわからんけど、
volatile int sig_flag = 1;
って宣言しとけば、sig_flagの値がレジスタ上にある間に
シグナルハンドラに飛んじゃって(レジスタの値に対比されて)、
変更したのに変更されない、って謎状態を回避できる、って話かと。


91 :名無しさん@お腹いっぱい。 :02/07/04 01:07
>>89
> 漏れのコーテ゛ィソク゛じゃタ゛メなのですか?

だめでしょ。>>88 のリンク先ちゃんと読んだ?
まず、これ。

> abort関数またはraise関数の呼出し以外でシグナルが発生し、
> かつ次のいずれかの場合であるならば、その動作は定義されない。
>・シグナル処理ルーチンが、静的記憶域期間をもつ任意のオブジェクトを参照する場合。
> ただし、volatile sig_atomic_t型の静的記憶域期間をもつ変数に値を代入する場合を
> 除く。

あとこれ。
> プログラムは割り込まれたところから実行を再開する。


92 :名無しさん@お腹いっぱい。 :02/07/04 03:18
>>91 は教え上手 & 察し上手。

オレ >>87 見ても 「if の処理?ハア?」としか思えなかったが
>>91 見て疑問が氷解。


93 :79 :02/07/04 08:06
>>91ハカミ

94 :名無しさん@お腹いっぱい。 :02/07/04 22:22
>>82
便乗質問。(宿題じゃないけど)
man見てもsigactionって何に使うのかいまいち分かりません。
単なるsignal()ではダメで、sigaction()でないと出来ない処理とか、
sigaction()の主な用途を教えてください。

95 :名無しさん@お腹いっぱい。 :02/07/05 01:49
更に便乗で。。
sigset()ってのもあるでしょ?

96 :82 :02/07/05 02:24
>>94
signal は OS によって semantics が違ってウザイ。
BSD だけ使うなら別に問題ないかも。


97 :書けませんよ。。。 :停止
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ


掲示板に戻る 全部 前100 次100 最新50

read.cgi ver5.26+ (01/10/21-)