From: Tanaka Akira Date: 2005-09-28T19:05:41+09:00 Subject: [ruby-dev:27350] Re: File#read にゴミがつく In article <20050928.172830.125108510.mame@yl.is.s.u-tokyo.ac.jp>, Yusuke ENDOH writes: > 32bit Solaris ではもともと > READ_DATA_PENDING は FILE_COUNT になっていたらしいことを踏まえて、 > io.c 中の #elif の順番を以下のように変えると > 32bit Solaris でも 64bit Solaris でも動作しました。 > (ただし全ての Solaris 環境で効果があるか、 > DragonFlyBSD など他環境にどういう影響を与えるかはわかりません) 私はもっと明示的に #if defined(HAVE___FPENDING) && (defined(sun) && (64bit な条件) || defined(__DragonFly__)) というようなのを想定していました。 Solaris のマニュアルによれば、__fpending は出力バッファに入っているデー タの量を返すもので、入力バッファに入っているデータの量を得るのに使うの はマニュアルに無い使いかたです。 32bit Solaris で動かないのはそこが関係しているという見方もあります。 [ruby-core:3793] というわけで、動作が確認できた環境以外で使うのはあんまりよくないと思う んです。 -- [田中 哲][たなか あきら][Tanaka Akira]