반응형
리눅스 라이브러리의 생성자와 소멸자를 등록하는 방법은 2가지가 있다.
라이브러리 생성자나 소멸자는 라이브러리 전역에서 쓰이고 한번만 초기화 되어야 하는 객체에 사용하라. 예를 들어 전역적으로 쓰이는 변수, mutex 등을 말한다.
추천
void __attribute__ ((constructor)) my_init(void) |
생성자(constructor) 는 dlopen 이 반환되기 전이나 혹은 라이브러리가 로드 될 때에 실행된다. 중요 : 공유 라이브러리는 컴파일시 -nostartfiles 혹은 -nostdlib 옵션이 들어가면 안된다. 만약 이 argument들이 사용되었다면 생성자나 소멸자는 실행되지 않는다. |
비추천
void _init(void) |
gcc 옵션에 -nostartfiles 를 추가한 상태로 라이브러리를 만들어야한다. 그렇지 않으면 multiple-definition 에러가 발생할 것이다. |
반응형
'학습자료(~2017) > 리눅스' 카테고리의 다른 글
[Linux] 유닉스 소켓 (unix socket) 을 이용한 파일 디스크립트 보내기/받기(file descriptor send/recv) - 다른 프로세스로 디스크립트 전송/공유 (0) | 2013.05.24 |
---|---|
[Linux] RPM package(RPM 만들기 , RPM 패키징) 이모저모 (0) | 2013.04.04 |
[Linux] path resolution , 경로 분석법 (0) | 2013.03.06 |
[Linux] 메모리 캐쉬 삭제하기 (0) | 2013.02.28 |
[LINUX]ext3, ext4 크기 확장 - Resize an ext3, ext4 (2) | 2013.02.01 |