[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00342] Re: return value and other
- To: freewnn@tomo.tomo.gr.jp
- Subject: [freewnn:00342] Re: return value and other
- From: Tatsuo Furukawa <frkwtto@XXXX>
- Date: Fri, 18 Feb 2000 02:22:52 +0900
- In-Reply-To: <863ds1qj42.fsf@fenrir.itl.co.jp> (sin@itl.co.jp)
- Reply-To: freewnn@tomo.gr.jp
古川竜雄です。
jserver の終了コードの話です。
福井さん> 設定されていませんので
福井さん> int main(){ return 0;} のreturn 0;に当たる記述がde.cに
福井さん> 見当たりません。
元木さん> Xsi/Wnn/jserver/de.c の 229行目あたりの _exit がそれに当たります。
元木さん> で、その下の 265行目あたりで SIGTERM を送って親プロセスを
元木さん> kill しています。
元木さん> そのため SIGTERM のシグナルハンドラーたる _exit は、SIGTERM
元木さん> を引数として _exit (SIGTERM) と呼ばれます。
元木さん> そうすると Linux では SIGTERM == 15 ですので tserver からの
元木さん> 戻り値は 15 になります。
元木さん> 本当は、いきなり _exit をシグナルハンドラーにするのではなく
元木さん> 一枚関数をかまして処理すべきだと思います。
これ、具体的にどうしたらいいのでしょう?
要するに
signal(SIGTERM, _exit);
↓
handler
と書き換えて、handler では、
原因が SIGTERM だったら _exit(0);
それ以外 _exit(シグナルの値)
という感じにしておけばいいのでしょうか?
元木さん> 正常終了なのに 15 が返るなんてのは気分が悪い :-)
やっぱ、正常終了は 0 ですよね。:-)
--
古川竜雄 (frkwtto@osk3.3web.ne.jp) / FreeWnn Project