From: Tanaka Akira Date: 2004-12-22T12:12:56+09:00 Subject: [ruby-dev:25279] Re: 1.8 reopen problem with duplex popen In article <87oego9d4p.fsf@serein.a02.aist.go.jp>, Tanaka Akira writes: > ふむ。この挙動が fork がないシステムで通用するものなのかどうかはいまひ > とつ判断がつきませんが、popen/pclose を使う環境は実際に存在するので、 > そういう環境とそうでない環境でポータブルな挙動を実現するには、 > popen/pclose と同様の挙動にするしかないんじゃないかと思います。 > > つまり、reopen で close して wait ですが。 ちょっと考え直したのですが、IO#reopen に IO を渡したときはそうでなくて もいいのかもしれません。 というのは、そのときの動作は、 stdio に対応するものがなく、dup2 で fd が指すものをすりかえることによって実現されています。ということは、プロ セスを待つという動作は行われないのが自然なのかも。 でも、djgpp などでプロセスが動く機会がなくなってしまうのはやはり変なの で、IO を渡したときの仕様はなにか考え直したほうがいいのかも知れません。 具体的にどうするかといえば例外くらいしか思いつきませんが。 -- [田中 哲][たなか あきら][Tanaka Akira]