はるおです。

On Thu, 16 Nov 2000 14:22:29 +0900
matz / zetabits.com (Yukihiro Matsumoto) wrote:
|>シェルで $? が WEXITSTATUS の値が入っているのは、core dumpや
|>シグナルなどの WEXITSTATUS 以外の部分の値の処理(具体的にはエ
|>ラーメッセージ出力)をシェル自身が行っているからです。Ruby(や
|>Perl)は、そのような処理の余地がありませんから(これらの言語は
|>より「普通の言語」に近いので、ただ単にエラーメッセージを出さ
|>れただけでは困ってしまう)、waitの戻り値の WEXITSTATUS 以外の
|>部分を保存する必要があります。
|       ^^^^^^^^^^^^^^^^^^^^^^^
|という理由をしめしたのですが、読めませんでしたか?

実装の詳細が皆目分っていないので以下推測ですが、
保存される戻り値は、例えば、「waitの戻り値の WEXITSTATUS」などは
上位バイトに、シグナルなどのシステムからの戻り値は下位バイトに設
定され、$?には両者が含まれると解釈していいのでしょうか?
---
Haruo