goo blog サービス終了のお知らせ 

コード溜め

備忘録的コンピュータ日記

[Linux]実行時間を測定

2006-01-20 15:58:57 | C
getrusage 関数をつかう。

struct rusage r_usage1,r_usage2;
getrusage(RUSAGE_SELF,&r_usage1);

/* 測定したい区間の処理のコード */

getrusage(RUSAGE_SELF,&r_usage2);

printf ("CPU usage : User %ld.%06ld, System = %ld.%06ldnCPU usage : User %ld.%06ld, System =
%ld.%06ldn",
r_usage1.ru_utime.tv_sec, r_usage1.ru_utime.tv_usec,
r_usage1.ru_stime.tv_sec, r_usage1.ru_stime.tv_usec,
r_usage2.ru_utime.tv_sec, r_usage2.ru_utime.tv_usec,
r_usage2.ru_stime.tv_sec, r_usage2.ru_stime.tv_usec);

[perl,C]$#ARGVとint argcの値

2005-04-27 18:12:50 | C
プログラムを書いていていつも分からなくなる…。perlとCを行ったり来たりするせいだ。

コマンド実行時のコマンドライン引数の個数の調べ方。

・perlの場合($#ARGV)
@ARGV配列の最後のインデックス(添え字)が入る。
かつ、@ARGVはコマンドラインの引数のみが入る。つまり、実際の引数の数-1。
(プログラム名は入らない。これを調べるときは$0または$PROGRAM_NAMEをつかう。)


・Cの場合(main(int argc, char *argv[]))
argcにはargv配列の個数が入る
そしてargv[0]には、そのプログラム名が入る。つまり、実際の引数の数+1


ちなみにperlの$0変数は、スクリプトから変更することが可能で、変更するとpsコマンドなどで表示するプログラム名が変化するそうだ。