コード溜め

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

[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コマンドなどで表示するプログラム名が変化するそうだ。