パラメータ | 詳細 |
---|---|
argc | 引数count - コマンドラインからプログラムに与えられたスペースで区切られた引数の数とプログラム名自体に初期化されます。 |
argv | 引数vector - コマンドラインで与えられた引数(およびプログラム名)を含むchar -pointers(文字列)の配列に初期化されます。 |
「ホストされた環境」(通常のタイプ - 「フリースタンド環境」とは対照的に)で動作するACプログラムは、 main
機能を備えていなければなりません。伝統的には次のように定義されています。
int main(int argc, char *argv[])
argv
は、 char **argv
として定義することもできます。行動は同じです。また、パラメータ名は関数内のローカル変数であるため変更できますが、 argc
とargv
は従来のものであり、これらの名前を使用する必要があります。
コードが引数を使用しないmain
関数については、 int main(void)
使用してください。
両方のパラメータは、プログラムの開始時に初期化されます。
argc
は、コマンドラインからプログラムに与えられたスペースで区切られた引数の数とプログラム名自体に初期化されます。 argv
は、コマンドラインで与えられた引数(およびプログラム名)を含むchar
-pointers(文字列)の配列です。 myprogram *.txt
と入力すると、プログラムはテキストファイルのリストを受け取ります。 Windowsでは文字列 " *.txt
"を受け取ります。 注意: argv
を使用する前に、 argc
の値をチェックする必要があります。理論的には、 argc
は0
になり、 argc
が0の場合、引数はなく、 argv[0]
( argv[argc]
相当)はNULLポインタです。この問題に遭遇した場合、ホストされた環境では異常なシステムになります。同様に、非常に珍しいことですが、プログラム名についての情報がないこともありえます。その場合、 argv[0][0] == '\0'
- プログラム名は空であるかもしれません。
次のようにプログラムを開始するとします。
./some_program abba banana mamajam
argc
は4
に等しく、コマンドライン引数は次のようになります。
argv[0]
は"./some_program"
(プログラム名)を指します。それ以外の場合は空の文字列""
返します。 argv[1]
は"abba"
指します。 argv[2]
は"banana"
指します。 argv[3]
は"mamajam"
指します。 argv[4]
には値NULL
が含まれていNULL
。 また、標準からの完全な引用については、CおよびC ++でmain()
返す必要があるのも見てください。