From: yharuo@...7.dddd.ne.jp Date: 2000-11-14T14:50:31+09:00 Subject: [ruby-list:25943] Re: 子プロセスから標準出力と終了ステータスを得たい はるおです。 On Tue, 14 Nov 2000 13:06:51 +0900 Takahiro Kambe wrote: |> ちょいと疑問に思ったのですが、ANSI C レベルでは、 |> #include |> void exit(int status); |> のstatusに指定した値が、環境に返されるとは規定されていませんよね。 |> |> EXIT_SUCCESS == 0 |> EXIT_FAILURE != 0 (実際は1) |> というマクロが定義されているだけだったと思います。 |これは、成功と失敗を意味する値のマクロが用意されているという意味で、そ |れ以外の値の意味の解釈はシステム依存ということではないのでしょうか? 「それ以外の値の意味の解釈はシステム依存」なのでしょうか? Linuxのman exitの結果ではstatusは親プロセスに返されるとなっている んですけど・・・(下記) 説明 _exit は、それを呼んだプロセスを直ちに終了させる。その際、 このプロセスが所有しているディスクリプター(descriptor)で、 オープンされているものは全てクローズされる。また、このプロ セスが所有する子プロセスは全て、プロセス番号 1、 つ ま り init プロセスによって継承され、このプロセスの親プロセスに 対して SIGCHLD シグナルが送出される。 status はこのプロ セ ス の 終了状態としてその親プロセスに対して返され、その値は wait 系関数を利用することによって取得することができる。 --- Haruo