인수 정의
프로토타입에서 인수
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]** 는 첫 번째 명령줄 인수 등에까지입니다 argvargc,입니다 항상 NULL.볼 명령줄을 사용자 지정 처리 명령줄 처리를 억제 하는 방법에 대 한.항상 첫 번째 명령줄 인수는 argv**[1]** 이며 마지막 argvargc -1.
[!참고]
규칙에 따라 argv[0]은 프로그램을 호출하는 데 사용된 명령입니다.그러나 사용 하 여 프로세스를 생성 하는, CreateProcess 및 첫 번째 및 두 번째 인수를 사용 하는 경우 (lpApplicationName 및 lpCommandLine), argv[0] 실행 파일 이름이; 사용 하 여 GetModuleFileName 실행 파일 이름 및 정규화 된 경로 검색 합니다.
Microsoft 전용
- envp
envp 배열 많은 UNIX 시스템에서 확장 하는 Microsoft C++에서 사용 됩니다.이 사용자의 환경에 설정 된 변수를 나타내는 문자열의 배열입니다.이 배열에서 종료 되는 NULL 항목입니다.이에 대 한 포인터 배열을 선언할 수 있습니다 char (char * envp**)** 또는 포인터에 대 한 포인터를 문자 (char ** envp**).프로그램을 사용 하는 경우 wmain 대신 주, 사용 하는 wchar_t 데이터 형식 대신 char.환경 블록은 전달 된 주 및 wmain "고정 된" 현재 환경의 복사본입니다.이후에 환경에 대 한 호출을 통해 변경 하면 putenv 또는 _wputenv, 현재 환경 (반환 하는 getenv/_wgetenv** , _environ/ _wenviron 변수) 변경, 하지만 envp가 가리키는 블록 변경 되지 것입니다.볼 명령줄을 사용자 지정 처리 환경 처리를 억제 하는 방법에 대 한.이 인수는 ANSI C를 하지만 아닌 C++에 호환 됩니다.
예제
다음 예제에서는 사용 하는 방법을 보여 줍니다 있는 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";
}
}