構文 |
|
system 実行プログラムとコマンドライン・オプション system プログラム名 実行プログラムとコマンドラインオプション |
返り値 |
|
成功した場合に実行プログラムのステータス・コード 失敗した場合-1 |
説明
- プログラムを実行してステータス・コードを返します。
- 要素が二つ以上の場合,一つ目が実行プログラム名,二つ目以降がコマンドラインオプションになります。
- 要素が一つの場合,引数にシェルのメタ文字があるかどうかを調べて,メタ文字がある場合はシェルを介してプログラムを実行します。メタ文字がない場合は直接プログラムを実行します。
- プログラム名を指定すると,実行プログラムをその名前で実行することができます。
使用例
#!/usr/bin/perl
use strict;
use warnings;
my @command = ('netstat', '-a');
my $ret = system @command;
if ($ret != 0) {
print "code[$ret]\n";
}
#!/usr/bin/perl
use strict;
use warnings;
my $command = 'netstat > result.txt';
my $ret = system $command;
if ($ret == 0) {
print "success.\n";
} else {
print "code[$ret]\n";
}
#!/usr/bin/perl
use strict;
use warnings;
my @command = ('netstat', '-a');
system @command;
if ($? == -1) {
# プログラム実行に失敗
print "execute error.\n";
} elsif ($? & 127) {
# プログラム異常終了
printf "child process died with signal %d.\n", ($? & 127);
} else {
# プログラムのステータスコード確認
printf "status code %d.\n", ($? & 128);
}