次の方法で共有


引数定義

次のプロトタイプで引数を指定します。

int main( int argc[ , char *argv[ ] [, char *envp[ ] ] ] ); 
int wmain( int argc[ , wchar_t *argv[ ] [, wchar_t *envp[ ] ] ] );

これにより、簡単にコマンド ラインの引数を解析し、オプションで環境変数にもアクセスできます。 引数の定義は、次のとおりです。

  • argc
    これに続いて argv で渡される引数の数を格納した整数。 argc パラメーターは、必ず 1 以上になります。

  • argv
    プログラムのユーザーが入力したコマンド ライン引数を表す、null で終了する文字列配列。 規則により、argv**[0]** はプログラムが起動されるコマンドになります。argv**[1]** が最初のコマンド ライン引数で、以降、必ず NULL となる argv**[argc]** までの間、順に引数が続きます。 コマンド ライン処理の抑制については、コマンド ライン処理のカスタマイズに関するトピックを参照してください。

    最初のコマンド ライン引数は、必ず argv**[1]** となり、最後のコマンドライン引数は、argv**[argc – 1]** になります。

    注意

    規則により、argv[0] は、プログラムが起動されるコマンドです。 ただし、CreateProcess を使用してプロセスを生成することもできるため、1 つ目と 2 つ目の両方の引数 (lpApplicationName と lpCommandLine) を使用する場合は、argv[0] が実行可能ファイルの名前になるとは限りません。実行可能ファイルの名前とその完全修飾パスを取得するには、GetModuleFileName を使用します。

Microsoft 固有の仕様 →

  • envp
    多くの Unix システムに共通の拡張機能である envp 配列は、Microsoft C++ で使用されます。 これは、ユーザーの環境で設定された変数を表す文字列の配列です。 この配列は NULL エントリで終了します。 char へのポインターの配列 (char *envp[ ]) としても、char へのポインターへのポインター (char **envp) としても宣言できます。 プログラムが main ではなく wmain を使用している場合は、char の代わりに wchar_t データ型を使用します。 main および wmain に渡される環境ブロックは、現在の環境の "固定の" コピーであることに注意してください。 その後、putenv または _wputenv の呼び出しによって環境を変更すると、現在の環境 (getenv/_wgetenv および _environ 変数/_wenviron 変数で返される) は変わりますが、envp がポイントするブロックは変わりません。 環境処理の抑制については、コマンド ライン処理のカスタマイズに関するトピックを参照してください。 この引数は、C では ANSI 互換ですが、C++ では非互換です。

使用例

次の例は、main への argc、argv、および envp 引数の使用方法を示しています。

// argument_definitions.cpp
// compile with: /EHsc
#include <iostream>
#include <string.h>

using namespace std;
int main( int argc, char *argv[], char *envp[] ) {
    int iNumberLines = 0;    // Default is no line numbers.

    // If /n is passed to the .exe, display numbered listing
    // of environment variables.

    if ( (argc == 2) && _stricmp( argv[1], "/n" ) == 0 )
         iNumberLines = 1;

    // Walk through list of strings until a NULL is encountered.
    for( int i = 0; envp[i] != NULL; ++i ) {
        if( iNumberLines )
            cout << i << ": " << envp[i] << "\n";
    }
}

参照

関連項目

main: プログラムの起動