100. main 함수 매개변수

이번에는 main 함수 매개 변수를 사용하는 방법을 살펴보아요.
main 함수는 프로그램 진입점 함수로 프로그램의 개발자가 작성한 코드 중에서 제일 먼저 수행하죠.
main 함수는 시작하면서 인자와 환경 변수를 받아 사용할 수 있고 종료 결과를 반환할 수 있어요.

int main(int argc,char **argv, char **env);

main 함수는 전달한 인자와 환경변수를 선택적으로 사용할 수 있어서 개발자는 다양한 형태의 원형을 갖는 main 함수 중에 한 가지 형태로 정의하여 사용할 수 있어요.

int main(int argc, char **argv, char **env);
void main(int argc, char **argv, char **env);
int main(int argc, char **argv);
void main(int argc, char **argv);
int main();
void main();

main 함수의 첫번째 인자는 시작한 곳에서 전달한 인자의 개수예요.
두번째 인자는 전달한 인자 요소 컬렉션의 주소이며 세번째 인자는 환경 변수 컬렉션의 주소예요.
인자 요소는 문자열로 되어 있어서 인자 요소 컬렉션을 받기 위해 char ** 형식으로 받을 수 있어요.
그리고 환경 변수는 “key=value”처럼 키와 값의 쌍을 = 문자로 구분한 문자열로 되어 있어요.
환경 변수 컬렉션의 주소도 ,char **형태로 받을 수 있어요.

프로그램 진입점으로 전달한 인자를 아규먼트(argument)라 불러요.
main 함수의 첫번째 인자인 argc는 argument count의 약자이며 argv는 argument vector의 약자예요.

다음 코드는 argument로 전달받은 모든 인자를 출력하는 간단한 예제 코드예요.
◈ Program.c

#include <stdio.h>
int main(int argc,char **argv)
{
    int i = 0;
    for(i=0; i<argc; i++)
    {
        printf("%d th: %s \n",i+1, argv[i]);
    }
    getchar();
    return 0;
}

테스트는 콘솔 창을 열어 프로그램 실행 파일이 있는 위치로 이동하여 실행 파일명과 여러 인자를 입력하세요.
환경 변수를 사용하는 방법에 대해서는 다루지 않을게요.
관심있으신 분은 getenv 함수와 putenv 함수 사용법을 살펴보세요.