From: matz@... (Yukihiro Matsumoto) Date: 2002-05-21T18:05:04+09:00 Subject: [ruby-dev:17170] Re: argv[0] まつもと ゆきひろです In message "[ruby-dev:17169] Re: argv[0]" on 02/05/21, Tanaka Akira writes: |えぇと、これほど反応が出るとは思ってもみなかったのですが、まぁ素直に喜 |んでおくことにしてまとめます。 |出た案は | |RUBY_INTERPRETER |RUBY_INTERPRETER_NAME |RUBY_INTERPRETER_PATH |RUBY_PROGRAM_NAME |RUBY_ARGV0 | |ARGV.program_name | |Process.argv |Process.progname | |くらいだと思います。 まとめていただいてありがとうございます。 |# まつもとさんの基準にあうものが一つでもあるといいんですが... ありていにいってしまうとありませんでした(泣)。 argvという名前はインタプリタに属するのでembedされた場合にも 使えるProcessの属性(メソッド)にはあまりしたくありません。 RUBY_PROGRAM_NAMEは結構良いのですが、PROGRAMの意味するものが Rubyのスクリプト($0と同じ)か、インタプリタかの違いが明確でな いように思いました。English.rbの$0の別名は$PROGRAM_NAMEだし。 かといって、RUBY_INTERPRETER_NAMEでは、embed環境で無意味です しねえ。 そこで、RUBY_EXACUTABLE_NAMEはどうでしょう。_PATHでないのは、 execにだまされる可能性によりpathでないから、という気持ちを表 現しているのですが。これはembed(通常はインタプリタのmain)側 で定義するので、embedするプログラムはこの定数を * 定義しない * 自分のargv[0]をセットする のいずれかを選択するわけですね。 まつもと ゆきひろ /:|)