引数の定義
プロトタイプの引数
int main( int argc[ , char *argv[ ] [, char *envp[ ] ] ] );
int wmain( int argc[ , wchar_t *argv[ ] [, wchar_t *envp[ ] ] ] );
引数の便利なコマンド ラインの分析を使用すると、環境変数にアクセスします。引数の定義は次のとおりです。:
argc
argvの後の引数の数を含む整数。argc のパラメーターは1.に大きいか等しい。常にです。argv
プログラムのuserによって入力されたコマンド ライン引数を表すnullで終わる文字列の配列。規則により、argv**[0]** は、プログラムを起動するコマンド、argv**[1]** です **[NULL]常にの最初のコマンド ライン引数など、argv[argcまでの]**です。コマンド ライン処理の抑制の詳細については、コマンド ラインの処理のカスタマイズ を参照してください。最初のコマンド ライン引数が argv**[1]** 常にで、最後の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ではなく、C++でANSI互換です。
使用例
次の例に 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";
}
}