Shammer's Philosophy

My private adversaria

C言語Main関数の引数

今さらだけれど・・・よくわかっていなかったのでメモ。
Cだと次のように書く。

int main(int argc, char *argv[]) {
    int i;
    printf("コマンドとパラメータの合計数:%d", argc);
    for( i = 0 ; i < argc ; i++ ){
        printf("%d つ目は、%s", i, argv[i]);
    }
    printf("Finish");
    return 0;
}

main関数の一つ目の引数として、int型のものが渡される。
これは、コマンドそれ自体と後に続く引数の合計数。
そして、argv[]の方が引数へアクセスするためのポインタ。
上記サンプルを、Test.bin という名前でコンパイルして、

$./Test.bin aaa bbb ccc

と実行すると、

コマンドとパラメータの合計数:4
0つ目は、./Test.bin
1つ目は、aaa
2つ目は、bbb
3つ目は、ccc

というように表示される。
こんな風になっていたとは・・・