2011年11月15日8:21 KOSAKI Motohiro <kosaki.motohiro / gmail.com>:

>> F_DUPFD ですが、Ruby 2.0 で F_DUPFD が使えない環境って、何がありましたっけ?
>>
>> このまえ Windows で使えるようにしてもらったので、
>> Unix (含 MacOS X) でも Windows でもない環境ということになりますが。
>
> あれ、念頭においていたのはWindowsだったのですが、だとすると
> そんなプラットフォームは存在しないかもしれません。
>
> レビューコメントはもっともな指摘だったので特に確認せずに入れてしまいました。

F_DUPFD はポータブルに存在すると仮定してよいように思います。

まぁ、F_DUPFD は dup があれば実装できるので、
本当に存在しないプラットフォームが見つかったら、
実装してしまえばいいんじゃないでしょうか。

ただそのときに Fcntl::F_DUPFD という定数をどうするかはちょっと問題ですが...
int の範囲内で適当に衝突しそうにない値を選ぶか、
Bignum を使って絶対に衝突しない値を使うか、
整数でない適当なオブジェクトを使うか、
やりようはいろいろ考えられます。
-- 
[田中 哲][たなか あきら][Tanaka Akira]