출처 : http://mwultong.blogspot.com/2006/12/c-argc-argv-main-function-parameter.html
각 함수에는 인수(파라미터)를 지정할 수 있습니다. 프로그램 본체인 main() 함수에도 당연히 인수를 지정할 수 있습니다. 메인 함수의 인수는, 운영체제에서 그 프로그램을 실행할 때 지정해 준 "옵션"입니다.
예를 들어 도스창(명령 프롬프트;CMD.EXE)에서
dir /?
이렇게 하면 dir 명령에 대한 도움말이 출력됩니다. 이때 "/?" 라는 문자열이 옵션이 되는 것입니다.
main(int argc, char* argv[])
에서
argc 는, 프로그램을 실행할 때 지정해 준 "명령행 옵션"의 "개수"가 저장되는 곳입니다.
argv 는, 프로그램을 실행할 때 지정해 준 "명령행 옵션의 문자열들"이 실제로 저장되는 배열입니다.
다음 예제를 보면 쉽습니다.
int argc, char* argv[] 사용법 예제; main() Option Example
#include옵션을 하나도 입력하지 않으면 argc 는 1이 됩니다. 즉 argc 는 항상 1 이상입니다. 0이 되지 않습니다.#include // exit() int main(int argc, char* argv[]) { // 옵션 지정하지 않았을 때 에러 출력하고 종료 if (argc == 1) { fputs("에러! 옵션을 입력하지 않으셨군요...\n", stderr); exit(1); } // 옵션 개수 출력 printf("%d 개의 옵션을 입력하셨군요\n\n", argc - 1); // 옵션 배열의 요소들을 하나씩 출력 for (int i = 1; i < argc; i++) printf("argv[%d] = %s\n", i, argv[i]); return 0; }
위의 경우, argv[0]은 0.exe 가 됩니다. 즉 argv 의 첫번째 요소는 항상 "프로그램 자신의 파일명"입니다.
따라서 옵션의 정확한 개수를 구하려면 argc 에서 1을 마이너스해 주어야 합니다.
Q: 비주얼C (VC++) 에서만 되나요?
모든 C컴파일러에서 다 됩니다.envp 라는 이름의, 3번째 파라미터도 있습니다: ▶▶ C언어 VC++] 컴퓨터 환경변수 구하기/출력 방법; Get-Print Environment Variable
'About Programing > 03. Tip' 카테고리의 다른 글
Thead를 이용한 암호화 / 복호화 (4) | 2010.04.11 |
---|---|
일의 자리에서 반올림 , 올림 , 버림 (2) | 2010.04.05 |
MFC Dialog 꽉찬 화면 (0) | 2010.02.20 |
MFC Dialog 에서 Enter 와 ESC Key 종료 방지 (0) | 2010.02.20 |
MFC에서 Client 중복 실행 방지하는 방법 (1) | 2010.02.19 |