From: "U.Nakamura" Date: 2001-10-26T01:26:21+09:00 Subject: [ruby-list:32071] Re: mingw32, cygwin の ENV が子プロセスに引き継がれない こんにちは、なかむら(う)です。 At Oct.26,2001 00:53:27, wrote in '[ruby-list:32070] Re: mingw32, cygwin の ENV が子プロセスに引き継がれない' > デフォルトの USE_WIN32_RTL_ENV が define されていない状態では、 > スクリプトで ENV を変更しても environ の中身が変わらないため、 > spawnvpe(), spawnle() で environ を渡していることにより、 > ENV の変更が子プロセスに引き継がれないように思われるのですが、 > spawnvp(), spawnl() だと問題があるのでしょうか。 詳しく検証してる人がいないだけだと思いますので、変えてもいい のかも。 > ところで同じ win32/win32.c の mypopen() は > CreateProcess() を使っているのですね。 > ということは > WIN32API CreateProcess(): ENV変更が引き継がれる > system(): ENV変更が引き継がれない > IO.popen(): ENV変更が引き継がれる > ですね。なんで system() だけ... > この ENV と system() の関係は、今後も変わらないのでしょうか。 systemもIO.popenに準じてCreateProcess()に変えようという案が 出てます(というか、私が出してます)。 ちょっと前の1.7.1へのパッチが http://www.ruby-lang.org/~usa/tmp/win32_system_extention.patch にあります。process.cの分はもういらなくなってるはずですが。 それでは。 -- U.Nakamura