프로그래밍

Main

지니아부지 2012. 5. 2. 13:54

http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/main


main 함수

몇몇 프로그래밍 언어에서 main 함수는 프로그램의 시작위치로 사용된다. 예를 들어 C,C++과 같은 프로그래밍 언어들은 main 함수가 있어야지만 실행 파일을 만들 수 있다.

main 함수를 사용해야 하는 프로그래밍 언어는 main 함수를 시작점으로 여기에 유저 함수를 넣는 방식으로 프로그램을 작성한다.

C / C++

C와 C++은 동일한 방식으로 main 함수를 사용한다.
int main(void) 
 
int main(int argc, char **argv) 
 
모든 함수는 매개 변수를 가질 수 있다. 다른 함수와는 구별되는 특수한 main 함수도 매개 변수를 가질 수 있다. 다른 함수와 다른 점이라면, 프로그램 실행 인자가 main 함수의 매개 변수로 사용된다는 점이다.

argc는 프로그램 실행 인자의 갯수, argv는 프로그램 인자를 가리키는 포인터다. 이외에 환경 변수를 매개 변수로 넘길 수도 있다.
int main(int argc, char **argv, char **envp) 
 
프로그램의 이름이 mytest 이고, 다음과 같이 mytext를 실행한다면
# ./mytest a b c 
 
argc는 4, argv는 {"mytest", "a", "b", "c"} 가 된다.

main 함수는 int 값을 반환하는데, 이 값은 프로세스의 종료 상태로 부모 프로세스에게 전달된다. 부모 프로세는 main 함수의 반환 값을 이용해서 프로세스의 종료 상태를 확인할 수 있다.

C언어는 종료 값을 위해서 EXIT_SUCCESS 와 EXIT_FAILURE 를 정의하고 있다. 이들 값은 stdlib.h에 정의되어 있다. EXIT_SUCCESS는 0, EXIT_FAILURE는 1로 정의되어 있다.