본문 바로가기

프로그래밍/API

GCC에서 자동실행 함수 만드는 방법...

예전 Borland C++로 프로그램을 할때 많이 사용하던 명령이 있었다..

바로,
  #pragma startup function-name <priority>
  #pragma exit function-name <priority>

대충 어떤 역활을 하는 pragma 인지 알것이다~

리눅스(GCC) 기반으로 프로그램을 할때 이러한 기능이 필요 할때가 있다.
그런데, 나는 이러한 기능을 pragma에서 열심히 찾았었다. 그런데, 이러한 기능이 별도의 속성으로 설정해
사용할수 있다는 것을 알고 참으로 고마웠었다...

나처럼 이런 수고를 하려는 개발자에게 간단한 Tip을 소개한다.

static void FUNC(void) __attribute__ ((constructor));
static void FUNC(void) __attribute__ ((destructor));

과 같이 함수를 정의하면 하나는 프로그램이 시작될때 자동으로 호출될 것이며, 나머지 하나는 프로그램이
종료될때 같이 종료되는 함수를 만들수 있다.

C++의 class 생성자와 소멸자와 비슷한 역활을 한다고 보면된다. 그러나 차이라면 이 함수는 딱 한번씩만
호출된다는 것이다^^;

여러분들 중에 Visual Studio C++ 2005에서 이런 기능을 수행하게 하는 방법을 아시는 분은 리플 부탁드립니다~