system関数を使うのはなしでお願いします。それ以外ならどんな方法でも構いません。よろしくお願いします。
OS依存になってしまいですが、Perlではバッククォート(`)で
囲んだ文字列をコマンドとして実行します。
(そのコマンドのないOSではエラーになって実行できません)
そのコマンドの結果は戻り値で得られるのでprintなどで表示
できます。
こういうことではなくて?
open関数でコマンド実行できます。
http://www.kent-web.com/perl/chap6.html
open PS, "/usr/bin/ps aux |" or die "$!";
while (<PS>) {
print $_;
}
close PS;
なるほど。ありがとうございます。参考にさせていただきます。
OS依存になってしまいですが、Perlではバッククォート(`)で
囲んだ文字列をコマンドとして実行します。
(そのコマンドのないOSではエラーになって実行できません)
そのコマンドの結果は戻り値で得られるのでprintなどで表示
できます。
こういうことではなくて?
バッククォートが使えましたかぁ。戻り値を配列に入れればそのまま使えそうですね。ありがとうございます。
プロセスリストを取得する方法はOSごとに異なりますから、Perlの標準関数としては存在しません。
以下の Proc::ProcessTable のようなモジュールを導入するしか無いでしょう。
http://search.cpan.org/~durist/Proc-ProcessTable-0.40/ProcessTab...
これは標準モジュールではないので、別途インストールする必要があるかもしれません。
モジュールもありましたか。ありがとうございます。こちらも試してみたいと思います。
readdirやopenを駆使して/proc以下から情報を取得。
/procの構造に関してはman proc参照。
/procの勉強になりました。ありがとうございます。
バッククォートが使えましたかぁ。戻り値を配列に入れればそのまま使えそうですね。ありがとうございます。