From: Akinori MUSHA Date: 2002-05-21T12:18:10+09:00 Subject: [ruby-dev:17165] Re: argv[0] At Tue, 21 May 2002 11:43:08 +0900, nobu.nakada wrote: > At Mon, 20 May 2002 11:49:54 +0900, > Akinori MUSHA wrote: > > > それは$0の別名では、という気がしなくもありません。いや、それは > > > Process.titleとかかな? > > > >  現在の Ruby の $0 は両者が混じっている上、 argv[0] とも違う > > ので、対応させるのは無理ですね。 > > > > ・初期値はスクリプト名もしくは「-e」 > > ・設定すると setproctitle(3) 相当が実行される > > ・以後は最後に設定した値が入っている > > > > という感じでしょうか。 > > ですね。正確にはスクリプト/-eの評価以前は"ruby"ですが。 > > > # なんか Process.setproctitle(format, ...) は別に用意したい気が > > # してきた。$0 = "..." ってピンと来ない。後でいじってみよう.. > > VALUEからの変換が必要になるので、setproctitle(3)を直接使おうと > すると大変そうです。結局spritnf()を使うことになるなら、  まあ、 setproctitle("%s", RSTRING(rb_f_printf(argc, argv))->ptr); 程度ですけどね。  setproctitle(3) には - format の最初の文字が - である場合 - は無視され、フォーマット 後の文字列がそのままセットされる - format の最初の文字が - でない場合、「myname: 」が頭に付く (myname は getprogname(3) で得られる値。通常 basename(argv[0])) という仕様があったりするので、ごにょごにょやる必要はありますが。 > Process.title=でいいんじゃないかと思いますが。  メソッド名については、取得と設定が対称ではない(getproctitle(3) というのはない)ので変数のようには見せたくないというのがあります。  引数は文字列一つでいいのではないかという点については、 syslog モジュールでも syslog(3) に合わせてフォーマットを指定する形にして いるので、それにならいました。フォーマットを指定したいことが大半 と思うので。 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "Somewhere out of a memory.. of lighted streets on quiet nights.."