C言語のコマンドライン引数の覚書
main関数の引数
main関数は実は2つの引数をとることができる.
具体的には次のmainArgs.cのようにできる.
//mainArgs.c #include <stdio.h> int main(int argc, char *argv[] ){ for(int i=0; i<argc; i++){ char *p = argv[i]; printf("argv[%d] = %s \n", i, p); } }
$ gcc -o mainArgs mainArgs.c $ ./mainArgs this is arg argv[0] = ./mainArgs argv[1] = this argv[2] = is argv[3] = arg
mainArgs.cのargcとargvはコマンドライン引数と呼ばれるもので,
そのコードがコマンドラインから呼ばれるときのオプションによって定められる.
argc
main関数の第1引数すなわちargcは
int型の変数で,コマンドラインから実行されたときの”実行コマンド名とオプションの個数”を表す.
”実行コマンド名”の個数は1つなので”オプションの個数+1”ともいえる.
この実行例では$ ./mainArgs this is arg
としているから,argcの値は4になる.
argv
次にmain関数の第2引数すなわちargvは
char型ポインタの配列で,”実行コマンドとオプションのそれぞれの文字列”がその要素となる.
この実行例では$ ./mainArgs this is arg
としているから,argvのそれぞれの要素の値は次のようになる.
argv | 値 |
argv[0] | ./mainArgs |
argv[1] | this |
argv[2] | is |
argv[3] | arg |