image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« ピックアップ:IMEさらにお馬鹿に, 日本語ファイル名をローマ字に変換する, etc... | トップページ | ピックアップ: log4jとほぼ同じ使い方でprintfスタイルもサポートした「log5j」,ミュージック カリグラフィーペン, etc... »

2008-02-16

マジックナンバー 259 (STILL_ACTIVE)

java の ProcessBuilder で外部プログラム実行をさせた。
そのプログラムを終了を process#exitValue の値が得られまで loop するようなコードを書いた。
  http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Process.html#exitValue()

しばらくはそれで問題なかったのだが、あるケースでコマンド終了をキャッチできないことがあった。
いろいろ調べたら、外部プログラムで終了が System.exit(259) となると、終了をキャッチできないようだ。

Windows API では 259 は STILL_ALIVE という定数になっている。
  http://www.creamsoft.co.jp/docs/kirium/api/constant-values.html

こういった不連続な仕様自体が、問題をまねく元になるのだ。

http://gcc.gnu.org/ml/java-patches/2003-q1/msg00300.html
> ...
+      // NOTE: STILL_ACTIVE is defined as "259" by Win32 - if the
+      // child actually exits with this return code, we have a
+      // problem here. See MSDN documentation on GetExitCodeProcess( ).
> ...

javadoc の existValue で, "windows では、259 を終了コードに返すと問題となる" ことを書いて欲しいものだ。

« ピックアップ:IMEさらにお馬鹿に, 日本語ファイル名をローマ字に変換する, etc... | トップページ | ピックアップ: log4jとほぼ同じ使い方でprintfスタイルもサポートした「log5j」,ミュージック カリグラフィーペン, etc... »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/184434/40144386

この記事へのトラックバック一覧です: マジックナンバー 259 (STILL_ACTIVE):

« ピックアップ:IMEさらにお馬鹿に, 日本語ファイル名をローマ字に変換する, etc... | トップページ | ピックアップ: log4jとほぼ同じ使い方でprintfスタイルもサポートした「log5j」,ミュージック カリグラフィーペン, etc... »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク