[#9642] Re: host.conf は参照しないの? — akira yamada / やまだあきら <akira@...>

15 messages 2000/05/09

[#9672] IO.popen — Koji Arai <JCA02266@...>

新井です。

22 messages 2000/05/13
[#9673] Re: IO.popen — Koji Arai <JCA02266@...> 2000/05/13

新井です。

[#9682] Re: IO.popen — matz@... (Yukihiro Matsumoto) 2000/05/14

まつもと ゆきひろです

[#9676] support mingw32 — WATANABE Hirofumi <eban@...>

わたなべです.

32 messages 2000/05/13
[#9678] Re: support mingw32 — Masaki Suketa <CQN02273@...> 2000/05/14

助田です.

[#9680] Re: support mingw32 — WATANABE Hirofumi <eban@...> 2000/05/14

わたなべです.

[#9686] Re: support mingw32 — Katsuyuki Komatsu <komatsu@...> 2000/05/15

小松です。

[#9687] Re: support mingw32 — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/05/15

わたなべです.

[#9806] rescue variable syntax — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

40 messages 2000/05/24
[#9811] Re: rescue variable syntax — ARIMA Yasuhiro <fit0298@...> 2000/05/24

有馬です。

[#9814] Re: rescue variable syntax — matz@... (Yukihiro Matsumoto) 2000/05/24

まつもと ゆきひろです

[#9821] Re: rescue variable syntax — nobu.nakada@... 2000/05/25

なかだです。

[#9823] Re: rescue variable syntax — ARIMA Yasuhiro <fit0298@...> 2000/05/25

有馬です。

[#9833] Re: rescue variable syntax — matz@... (Yukihiro Matsumoto) 2000/05/25

まつもと ゆきひろです

[#9861] Re: rescue variable syntax — gotoken@... (GOTO Kentaro) 2000/05/25

ごとけんです

[#9866] Re: rescue variable syntax — matz@... (Yukihiro Matsumoto) 2000/05/25

まつもと ゆきひろです

[#9870] Re: rescue variable syntax — nagai@... 2000/05/26

永井@知能.九工大です.

[#9873] Re: rescue variable syntax — matz@... (Yukihiro Matsumoto) 2000/05/27

まつもと ゆきひろです

[#9812] Forward: Error in NT makefile (PR#7) — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

21 messages 2000/05/24
[#9820] Re: Forward: Error in NT makefile (PR#7) — Katsuyuki Komatsu <komatsu@...> 2000/05/25

小松です。

[#9842] Re: Forward: Error in NT makefile (PR#7) — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/05/25

わたなべです.

[#9855] Re: Forward: Error in NT makefile (PR#7) — Katsuyuki Komatsu <komatsu@...> 2000/05/25

小松です。

[#9879] Re: Forward: Error in NT makefile (PR#7) — WATANABE Hirofumi <eban@...> 2000/05/28

わたなべです.

[#9857] $0 handling on NT — Katsuyuki Komatsu <komatsu@...>

小松です。

18 messages 2000/05/25
[#9869] Re: $0 handling on NT — nobu.nakada@... 2000/05/26

なかだです。

[ruby-dev:9781] Re: IO.popen

From: Koji Arai <JCA02266@...>
Date: 2000-05-20 17:42:41 UTC
List: ruby-dev #9781
新井です。

>>> From: matz@netlab.co.jp (Yukihiro Matsumoto)
>>> Date: 21 May 2000 01:47:31 +0900
>>> Subject: [ruby-dev:9779] Re: IO.popen

> まつもと ゆきひろです

> ||今のcvsの最新はprocのときだけ終了するようになってますがブロッ
> ||クの場合は終了しないんでしょうか?
> |
> |終了した方が良いですね。
> 
> と思いましたが、互換性とブロックの意味(ブロックなしのopenの
> 戻り値を与える、終了したらcloseを保証)という観点からだと、ブ
> ロックの場合は終了しない方が良いような気がして来ました。
> ころころ変わって申し訳ないです。もうちょっと考えてから最終的
> な仕様を決めます。

他の方の意見が出されるときの助けになるよう(他力本願^^;)
ruby(の子プロセス)と双方向通信をする場合に限ったpopen() の書
き方を並べてみます。

(1) 従来方式(1.4はこの形式のみ)

    io = popen("-", "r")

    if io.nil?
      # child
      ...
      exit
    end

    # parent
    ...

(2) ブロック

    ret = popen("-", "r") { |io|
      if io.nil?
	 # child
	 ...
      else
	 # parent
	 ...
      fi
    }

    if ret.nil?
      # child
      ...		# <- (A)
      exit
    end

    # parent

(3) Proc

    io = popen "-", "r", proc {
      # child
      ...
    }

    # parent
    ...

(4) Proc とブロック

    ret = popen "-", "r", proc {
      # child
      ...
    } do |io|
      # parent
      ...
    end


とりあえず(2)では、

・(A)に処理を書くことがあるか?(あるかも知れない)
・ユーザ(スクリプト)にexitを任せるとatexit()が子側で実行され
  ることがあるのではないか?
・ブロックのparent部がnilを返すと親も(A)の処理を実行してしまう。

という問題があるように思います。

--
新井康司 (Koji Arai)

In This Thread