小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

system関数のリターン値で終了コードを取得するには

system関数は、既存の実行ファイルを起動します。
起動後、処理が完了すると制御が戻ってきます。
その時、終了コードが設定されている場合があり、それを取得するには、以下の通り。

use strict;
my $rc = system("test_kizon.exe");
$rc = $rc >> 8; # 1バイト分を右にシフト
print $rc;      # test_kizon.exeでセットされたステータス値

終了コードは、$rcの2バイト目に格納される。
したがって、1バイト(8ビット)分を右にシフトして、終了コードを取得します。