[#44725] Set[Set[1]]==Set[Set[1]] は偽? — "5.5" <5.5@...>

5.5 です。

22 messages 2008/03/04

[#44782] $stdin.rewind が exec した子プロセスに伝わらない? — SATOH Fumiyasu <fumiyas@...>

さとうふみやす @ OSS テクノロジです。

11 messages 2008/03/17
[#44783] Re: $stdin.rewind が exec した子プロセスに伝わらない? — Kazuhiro NISHIYAMA <zn@...> 2008/03/17

西山和広です。

[ruby-list:44786] Re: $stdin.rewind が exec した子プロセスに伝わらない?

From: SATOH Fumiyasu <fumiyas@...>
Date: 2008-03-18 06:53:57 UTC
List: ruby-list #44786
さとうふみやす @ OSS テクノロジです。

At Tue, 18 Mar 2008 06:14:37 +0900,
Nobuyoshi Nakada wrote:
> stdioの実装に依存します。glibcでは、fseek(3)の結果がFILE*のバッ
> ファ内に相当する場合には、lseek(2)は発行しないようです。おそらく
> パフォーマンスのためでしょう。これは、rubyに限らずstdioとexecを
> 使えば常に発生する問題で、以下のプログラムでも再現します。

なるほど。

ということで stdio を使っていないという Ruby 1.9 (1.9.0-1) で
試したところ、期待通りの動作をしました。
個人的にこの手の処理 (子プロセスとの IPC) は頻繁に利用するので、
Ruby 1.8 系列だと危なそうですね…。早く Ruby 1.9 が普及することを
願ってます。(できれば協力もしたいのだけど、時間なさすぎ。)

ありがとうございました。

-- 
-- Name: SATOH Fumiyasu (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- Personal Home: http://www.SFO.jp/blog/

In This Thread