`dlopen()`은 동적 링커 `ld-linux.so`를 호출하여 동적 링크를 수행합니까?

`dlopen()`은 동적 링커 `ld-linux.so`를 호출하여 동적 링크를 수행합니까?

CSAPP 라고

Linux 시스템은 간단한 인터페이스를 제공합니다.동적 링커애플리케이션이 런타임에 공유 라이브러리를 로드하고 링크할 수 있도록 합니다.

#include <dlfcn.h>
void *dlopen(const char *filename, int flag);

반환: 성공하면 핸들 포인터, 오류가 있으면 NULL

dlopen()동적 링커를 호출하여 동적 연결을 수행 합니까 ld-linux.so?

ld-linux.so동적 연결을 수행하는 동적 링커를 호출하고 있습니까 ?dlopen()

감사해요.

답변1

dlopen에서 제공 libdl하지만 그 배후에서는 최소한 제공된 기호를 사용하여 ld-linux.so동적 연결을 수행하는 GNU C 라이브러리를 사용하여 구현됩니다. dlopen동적 링커에서 호출 되면 ld-linux.so이미 로드되어 있으므로 기호를 직접 사용하고, 정적 링커에서 호출하면 로드를 시도합니다 ld-linux.so.

관련 정보