コマンドライン引数
コマンドライン引数(command line arguments)とは、プログラム実行時にプログラム(main関数)に受け渡す引数のことです。
コマンドプロンプト等からプログラムを実行する際に必要な情報を引数として指定することが可能です。
コマンドライン引数の利用
コマンドライン引数はスペース区切りで指定します。
記述
プログラム名 コマンドライン引数1 コマンドライン引数2 ... コマンドライン引数n
コマンドライン引数を利用するmain()関数
main関数には引数の数(整数型)と引数(文字型のポインタ配列)が受け渡されます。
引数には「プログラムの実行可能ファイル名(パス名を含む)を指すポインタ」が配列の先頭に格納される為、引数の数は必ず1以上となります。
コマンドライン引数を使用した記述例
// コマンドライン引数 program in C.
#include <stdio.h>
int main(int argc, char *args[])
{
int i = 0; // ループカウンタ
// コマンドラインで指定した引数分ループする
for (i = 0; i < argc; i++)
{
printf("[%d]:%s\n", i, args[i]);
}
return 0;
}
変数名はこの名前にする必要はありませんが、構文に示した変数名を使用するのが一般的です。
コマンドライン引数を指定してプログラムを実行すると、「argc」には「コマンドライン引数の数」が入り、「args」にはコマンドライン引数で渡された文字列を参照する為に必要な情報が入ります。
引数args[]は、「char型のポインタ配列」という意味です。
文字列を格納した文字型配列の先頭アドレスが格納されたchar型ポインタの二次元配列となっています。
上記記述例でのプログラムの実行ファイルを作成し、引数を受け渡しで実行する場合、以下のように記述します。
実行コマンド
C:\sample>commandline.exe test1 test2
実行ファイル「commandline.exe」をCドライブ配下のsampleディレクトリ内に配置し、引数として「test1」、「test2」という文字列を指定しています。
実行結果
[0]:commandline.exe
[1]:test1
[2]:test2
引数の先頭配列に実行ファイルのパス名、以降に指定した引数が格納されていることが確認できます。