コマンドライン引数

C言語でコマンドライン引数を受け取る方法についての解説です。コマンドライン引数は、main関数の引数として受け取ることができます。

int main(int argc, char *argv[]) {

}

第一引数は、コマンドライン引数の個数です。int型です。

第二引数は「char*」の配列型です。コマンドライン引数が文字列の配列で渡されます。

C言語では、実行したプログラム名も、コマンドライン引数の一部として入ってくることに注意しましょう。

たとえば

./test apple orange banana

で実行されるとargvは以下のようになります。

"./test", "apple", "orange", "banana"

argcとargvという名前は何でもよいですが、C言語仕様で記述されている名前で紹介しておきます。

コマンドライン引数のサンプル

コマンドライン引数を受け取って、内容をそのまま出力しています。

// test.c
#include <stdio.h>
#include <stdint.h>

int main(int argc, char *argv[]) {
  for (int32_t i = 0; i < argc; i++) {
    printf("%s\n", argv[i]);
  }
}

コンパイルして次のように実行してみましょう。

gcc -o test test.c && ./test apple orange banana

出力結果は以下のようになります。

./test
apple
orange
banana

関連情報