[#47529] ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない — jugyo kohno <kkohno@...>

jugyo と申します

11 messages 2010/10/08
[#47562] Re: ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない — "Y. NOBUOKA" <nobuoka@...> 2010/10/15

信岡です。

[#47537] Excel用のxmlssファイルを作成するライブラリ exlap_c — "YOSHIIZUMI" <t-yoshiizumi@...>

 吉泉といいます。

11 messages 2010/10/10

[ruby-list:47525] Re: ruby.exeとruybw.exeを区別することはできませんか?

From: "U.Nakamura" <usa@...>
Date: 2010-10-05 05:34:57 UTC
List: ruby-list #47525
こんにちは、なかむら(う)です。

In message "[ruby-list:47520] ruby.exeとruybw.exeを区別することはできませんか?"
    on Oct.04,2010 09:45:15, <sin@tdf.or.jp> wrote:
> こんには
> Windowsの環境でスクリプト内から自分自身を実行しているのがruby.exeなのか
> rubyw.exeなのかを判定する簡単な方法をご存じの方はいませんでしょうか?

現状、スマートな方法はありません。


> $$などでpidを取得して、win32api経由でプロセスに関する情報(イメージ名)
> を取得すれば実行ファイルの名前を知ることはできるのですが、なんだか、大が
> かりすぎるような感じがして、何か簡単な方法をご存じの方がいればと質問させ
> ていただきました。

Win32API経由で実行ファイル名を得るなら、GetModuleFileNameの第
一引数に0を渡す方が早いんじゃないですかね。

require "Win32API"
buf = "\0" * 256
Win32API.new("kernel32", "GetModuleFileName", "LPL", "L").call(0, buf, 256)
p buf.rstrip


> GUIを含んだプログラムで、rubyw.exeで実行させることで、コンソールウィンド
> ウが開かないようになりますが、エラーやワーニングなどでコンソール出力があ
> ると標準出力に出力しようとしてrubyw.exeが落ちてしまいます。それで、仕方

ruby 1.9だと、コンソール出力があったときにrubyw.exeが黙って落
ちる問題自体は解決されています。
ruby 1.8も開発レポジトリ上では解決されているので、たぶん将来
のリリースには反映されるんじゃないかと...


> ruby.exeとrubyw.exeの区別ではなく、STDOUTなどが無効かどうかを判定する方
> 法でもいいんですが……。

たぶんこれができれば確実でしょうね。
しかし思いつかない orz


それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>


In This Thread