[#12164] patch for ext/gdbm — Koji Arai <JCA02266@...>

新井です。

24 messages 2001/02/04
[#12168] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/05

まつもと ゆきひろです

[#12176] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/05

新井です。

[#12179] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/06

まつもと ゆきひろです

[#12219] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12220] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12256] set_trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 2001/02/17

[#12293] crash on proc without a block — Kenichi Komiya <kom@...1.accsnet.ne.jp>

15 messages 2001/02/25

[#12323] Re: [ruby-list:28364] class definition extension — "K.Kosako" <kosako@...>

ruby-listから移動しました。

13 messages 2001/02/28
[#12324] Re: [ruby-list:28364] class definition extension — matz@... (Yukihiro Matsumoto) 2001/02/28

まつもと ゆきひろです

[ruby-dev:12264] Re: system() problem

From: "Akinori MUSHA" <knu@...>
Date: 2001-02-18 00:57:53 UTC
List: ruby-dev #12264
At Sun, 18 Feb 2001 02:29:33 +0900,
matz wrote:
> In message "[ruby-dev:12261] system() problem"
>     on 01/02/18, "Akinori MUSHA" <knu@iDaemons.org> writes:
> 
> | おそらくは system() (vfork() & execvp()) を呼び出したときに
> |標準入出力の状態が正常でないためだと思いますが、何か思い当たる
> |節はありますでしょうか?
> 
> signal.cの ruby_signal(SIGPIPE, SIG_IGN) が怪しくないですか?

 ビンゴ!そうか、 SIGPIPE に思い至らなかったのは不覚でした。
現在の Ruby では SIGPIPE のデフォルトは SIG_IGN になっているん
ですね。。

 回避策としては、

	trap("PIPE") { exit }

してから system() を呼んでやると意図通りに動きました。


 signal.c がそうなっていることについては、直接の変更はこれ:

http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/ruby/ChangeLog.diff?r1=1.11&r2=1.12
http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/ruby/signal.c.diff?r1=1.2&r2=1.3

なんですが、 SIGPIPE については過去何度か議論があったようで、
なかなか厄介ですね。

http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb?key=SIGPIPE&cginame=namazu.rb&dbname=ruby-list&dbname=ruby-dev&max=50&whence=0


 Ruby が SIGPIPE でいきなり終了してしまうのが困る場合もあるから
SIGPIPE または EPIPE を捕捉したい。しかし一方では

	ruby -e 'system "yes | ls"'

が動作しないのはとても困る。ジレンマ。。


 うーん。妙案はないものか。(互換性も絡むし、難しい。。)

-- 
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"We're only at home when we're on the run, on the wing, on the fly"

In This Thread