[#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:44714] Re: パイプ経由コマンド実行?

From: Hidetoshi NAGAI <nagai@...>
Date: 2008-03-03 03:49:35 UTC
List: ruby-list #44714
永井@知能.九工大です.

From: "morita" <m-morita@ybrain.co.jp>
Subject: [ruby-list:44713] パイプ経由コマンド実行?
Date: Mon, 3 Mar 2008 12:09:53 +0900
Message-ID: <200803030310.m233A2Cc014183@flat01.bekkoame.ne.jp>
> パイプ経由で、linux built-in command は以下のように
> 動作するのですが、
    (snip)
> しかし、スクリプトの実行を指定すると STDIN にうまく渡らない
> ようです。例えば
    (snip)
> これは仕様上このようなっているのでしょうか?

典型的な I/O のバッファリングに関連する問題かと思います.
書き出し側がバッファにため込んだ状態のまま,
送り出すことなく終了してしまっているためでしょう.
「IO#flush の実行」, 「IO#sync=true に設定」, 「IO#syswrite を利用」
のいずれかで問題を解消できるのではないでしょうか.

つい先日,本 ML での話題になっていた拙著
「Ruby アプリケーションプログラミング」の
「5.2.3 外部コマンドとの通信」が
丁度この問題をテーマとして扱っておりますので,
書店などで見掛けましたら参考にしていただけますと幸いです.
-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp

In This Thread