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");   }}