----Security_Multipart(Thu_Nov_16_16:55:32_2000_809)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

福間@福岡 です。

記事 <E13wJBd-0003ou-00 / ev.netlab.zetabits.co.jp> にて、
matz / zetabits.com (Yukihiro Matsumoto) さんは書きました:

> |通常、上位バイトに「WEXITSTATUS」が設定される場合、下位バイトの
> |システムからの戻り値は「必ずゼロ(プロセス正常終了)」ですよね?
> 
> 質問の意味が良く分かりませんが、「普通の実装」では
> WEXITSTATUS がゼロだったら下位バイトもゼロです。
> つまり、exit(0) したプロセスに対する $? はゼロです。
> 
> ただし、POSIXがそれを保証してるかどうかは知りません。

子プロセスが exit(0) した場合に限り、wait() で得られる状態
(以下 status)が 0 になることは保証されています。

逆に言うと、「status が 0 であるかどうか」以外に、status の値そのものを
(マクロを使わずに)直接検査するような操作は、POSIX.1 では一切保証されて
いません。

# つまり、たとえ「上位バイトに exit() の引数が、下位バイトに付加情報が
# 格納される」ということがわかっていたとしても、「WIFEXITED(status) が
# 真なら status の下位バイトは常にゼロ」とは必ずしも言えません。
# そんな実装をわたしは見たことがないけど。

---
 FUKUMA Yasuhiro (福間 康弘) as Yasu.F @ Kitakyushu.Fukuoka.Japan
 Web site: http://www.bsdclub.org/~yasuf/
 PGP fingerprint = 17 25 8A F3 99 E5 7E 19  C0 EA 6E 03 8A C3 CE F0
 “いちばん苦手な言語は、日本語です。”

----Security_Multipart(Thu_Nov_16_16:55:32_2000_809)--
Content-Type: Application/Pgp-Signature
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 5.0i for non-commercial use
MessageID: 4msIAPg+Ls6cz9dxNANvE3U+Uc37tcYD

iQCVAwUAOhOTAQqHABIYLe0FAQExfwP/UVK1XK3h4fQ3OQDE1kax/FIViOwmHtC0
AsgyXFIGyJ8OU5tYidFF68LKz13fDhTH01h6ZcQTNX2ypWi3dbCV1uiEt9IU+Vrj
Y7wH4w7ieaFn6oUefliLqLgrXU6nwkYNHMCPc+/8/WWXWkPeoSuoN1OopijlWyF+
OBjkPjrkKsk=
=jDRC
-----END PGP SIGNATURE-----

----Security_Multipart(Thu_Nov_16_16:55:32_2000_809)----