Cコマンドラインパラメータ
プログラムを実行するとき、コマンドラインからCプログラムに値を渡すことができます。これらの値はコマンドラインパラメータと呼ばれ、特にコード内でこれらの値をハードコーディングするのではなく、外部からプログラムを制御したい場合には、プログラムにとって重要です。
コマンドラインパラメータは、main()関数パラメータを使用して処理されます。ここで、argcは渡されるパラメータの数を指し、argv[]はプログラムに渡される各パラメータを指すポインタの配列です。以下は、コマンド ラインでパラメータが指定されているかどうかを確認し、パラメータに基づいて対応するアクションを実行する簡単な例です。
#include <stdio.h>int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); }}
1 つのパラメータを使用して、上記のコードをコンパイルして実行すると、次の結果が生成されます。 2 つのパラメータを指定して上記のコードをコンパイルして実行すると、次の結果が生成されます:
$./a.out testingThe argument supplied is testing
パラメータを渡さずに上記のコードをコンパイルして実行すると、次の結果が生成されます:
$./a.out testing1 testing2Too many arguments supplied.
argv であることに注意してください。 [0]
が格納されます。プログラムの名前、argv[1]は最初のコマンドライン引数へのポインタ、*argv[n]は最後の引数です。引数が指定されていない場合、argc は 1 に設定されます。それ以外の場合、引数が 1 つ渡された場合、argc は 2 に設定されます。 複数のコマンドラインパラメータはスペースで区切られますが、パラメータ自体にスペースが含まれる場合は、パラメータを渡すときにパラメータを二重引用符 "" または一重引用符 '' で囲む必要があります。上記の例をスペースを入れるように書き直してください。そうすれば、次のようにビューを渡し、二重引用符または一重引用符 """" で囲むことができます。二重引用符で囲まれたプログラムにコマンド ライン引数を渡すように上記の例を書き直してみましょう:
$./a.outOne argument expected
二重引用符で囲まれた単純なスペース区切りの引数を使用して、上記のコードをコンパイルして実行すると、次の結果が生成されます:
#include <stdio.h>int main( int argc, char *argv[] ) { printf("Program name %s\n", argv[0]); if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); }}