Looking for c Answers? Try Ask4KnowledgeBase
Looking for c Keywords? Try Ask4Keywords

C Languageコマンドライン引数


構文

  • int main(int argc、char * argv [])

パラメーター

パラメータ詳細
argc 引数count - コマンドラインからプログラムに与えられたスペースで区切られた引数の数とプログラム名自体に初期化されます。
argv 引数vector - コマンドラインで与えられた引数(およびプログラム名)を含むchar -pointers(文字列)の配列に初期化されます。

備考

「ホストされた環境」(通常のタイプ - 「フリースタンド環境」とは対照的に)で動作するACプログラムは、 main機能を備えていなければなりません。伝統的には次のように定義されています。

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

argvは、 char **argvとして定義することもできます。行動は同じです。また、パラメータ名は関数内のローカル変数であるため変更できますが、 argcargvは従来のものであり、これらの名前を使用する必要があります。

コードが引数を使用しないmain関数については、 int main(void)使用してください。

両方のパラメータは、プログラムの開始時に初期化されます。

  • argcは、コマンドラインからプログラムに与えられたスペースで区切られた引数の数とプログラム名自体に初期化されます。
  • argvは、コマンドラインで与えられた引数(およびプログラム名)を含むchar -pointers(文字列)の配列です。
  • いくつかのシステムはコマンドライン引数を "シェルの中で"展開しますが、他のものは展開しません。 Unixでは、ユーザがmyprogram *.txtと入力すると、プログラムはテキストファイルのリストを受け取ります。 Windowsでは文字列 " *.txt "を受け取ります。

注意: argvを使用する前に、 argcの値をチェックする必要があります。理論的には、 argc0になり、 argcが0の場合、引数はなく、 argv[0]argv[argc]相当)はNULLポインタです。この問題に遭遇した場合、ホストされた環境では異常なシステムになります。同様に、非常に珍しいことですが、プログラム名についての情報がないこともありえます。その場合、 argv[0][0] == '\0' - プログラム名は空であるかもしれません。

次のようにプログラムを開始するとします。

./some_program abba banana mamajam

argc4に等しく、コマンドライン引数は次のようになります。

  • プログラム名がホスト環境から利用可能である場合、 argv[0]"./some_program" (プログラム名)を指します。それ以外の場合は空の文字列""返します。
  • argv[1]"abba"指します。
  • argv[2]"banana"指します。
  • argv[3]"mamajam"指します。
  • argv[4]には値NULLが含まれていNULL

また、標準からの完全な引用については、CおよびC ++でmain()返す必要があるのも見てください。

コマンドライン引数 関連する例