[#44713] パイプ経由コマンド実行? — "morita" <m-morita@...>
もりたと申します。お世話になります。
10 messages
2008/03/03
[#44714] Re: パイプ経由コマンド実行?
— Hidetoshi NAGAI <nagai@...>
2008/03/03
永井@知能.九工大です.
[#44716] Re: パイプ経由コマンド実行?
— "m-morita" <m-morita@...>
2008/03/03
もりた です。
[#44725] Set[Set[1]]==Set[Set[1]] は偽? — "5.5" <5.5@...>
5.5 です。
22 messages
2008/03/04
[#44726] Re: Set[Set[1]]==Set[Set[1]] は偽?
— "Ohto, Yasunori" <Yasunori.Ohto@...>
2008/03/05
大戸です。
[#44744] Re: Set[Set[1]]==Set[Set[1]] は偽?
— "5.5" <5.5@...>
2008/03/06
5.5 です。
[#44728] ダウンロードリンクが古い — Kouhei Yanagita <yanagi@...>
こんにちは。柳田です。
10 messages
2008/03/05
[#44745] [ANN] Rails勉強会@東京 第28回のお知らせ — "MOROHASHI Kyosuke" <moronatural@...>
各位
1 message
2008/03/07
[#44769] Ann: Ruby-1.9.0-1 Windowsインストーラパッケージ — arton <artonx@...>
artonです。
4 messages
2008/03/13
[#44773] PHPとの関数対照表 — "tadashi nagao" <tadashi.nagao@...>
長尾です。
7 messages
2008/03/14
[#44782] $stdin.rewind が exec した子プロセスに伝わらない? — SATOH Fumiyasu <fumiyas@...>
さとうふみやす @ OSS テクノロジです。
11 messages
2008/03/17
[#44783] Re: $stdin.rewind が exec した子プロセスに伝わらない?
— Kazuhiro NISHIYAMA <zn@...>
2008/03/17
西山和広です。
[#44785] Re: $stdin.rewind が exec した子プロセスに伝わらない?
— Nobuyoshi Nakada <nobu@...>
2008/03/17
なかだです。
[#44786] Re: $stdin.rewind が exec した子プロセスに伝わらない?
— SATOH Fumiyasu <fumiyas@...>
2008/03/18
さとうふみやす @ OSS テクノロジです。
[#44787] Re: $stdin.rewind が exec した子プロセスに伝わらない?
— Nobuyoshi Nakada <nobu@...>
2008/03/18
なかだです。
[#44788] Re: $stdin.rewind が exec した子プロセスに伝わらない?
— SATOH Fumiyasu <fumiyas@...>
2008/03/18
さとうふみやす @ OSS テクノロジです。
[ruby-list:44790] Re: $stdin.rewind が exec した子プロセスに伝わらない?
From:
SATOH Fumiyasu <fumiyas@...>
Date:
2008-03-18 10:26:11 UTC
List:
ruby-list #44790
さとうふみやす @ OSS テクノロジです。
おつきあいいただき、ありがとうございます。
At Tue, 18 Mar 2008 18:58:13 +0900,
Kazuhiro NISHIYAMA wrote:
> > シェルを介したくないんですが、IO.popen でできましたっけ?
>
> "-"でpopenしてexecでできそうです。
なるほど。Perl と一緒ですね。(ちょっと違うか?)
use IO::File;
my $fh = IO::File->new;
my $pid = $fh->open('-|');
> > system([cmd, cmd], args)
>
> 普通は複数引数のsystemの方が簡単に安全になるので、
> 私も普通は複数引数を使っています。
>
> argv[0]をわざわざ指定したいことはあまりないので、
> そこは違いますが。
引数がない場合は system([cmd, cmd]) とするしかない(?)し、
ある場合とで使い分けるのが嫌なので、私は常に指定しますね。
(さすがに 1-liner とかではしませんが)
> > 我ながらうまく書けた (自画自賛 :-) と思っているんですが、
> > ダメ出しあるなら頂けると嬉しいです。> all
>
> ダメ出しというより好みの問題に近いですが、Process.forkは
> ブロック付きの方が子プロセスはここだけ、という感じがするし、
なるほど。そのほうがいいと思うので、今後はそうすることにします。
> exit!を忘れてもブロックから抜けることがないので便利です。
ちなみに、先の引用元のプログラムは、失敗したときは exit! で
死なないと駄目な理由があります。
> exit!(1)は失敗という意味だけでいいのならexit!(false)という
> のもあります。
exit!(false) でプロセスの終了コードが 0 以外になることが
保証がされているなら、そのほうがいいかもしれませんね。
> unless stdout_reader_th.join(@timeout)というのは
> スレッドをnilかfalseを返す可能性がある実装に変えて
> しまうとはまりそう、と思ってしまいました。
`ri Thread#join` によると:
------------------------------------------------------------ Thread#join
thr.join => thr
thr.join(limit) => thr
------------------------------------------------------------------------
The calling thread will suspend execution and run thr. Does not
return until thr exits or until limit seconds have passed. If the
time limit expires, nil will be returned, otherwise thr is
returned.
...
なので、タイムアウト時に nil、それ以外はスレッドオブジェクトが
返ると思っていたのですが、マニュアルが間違っていますか?
--
-- Name: SATOH Fumiyasu (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- Personal Home: http://www.SFO.jp/blog/