OS X에서는 런타임에로드 된 경로를 dylib에서 어떻게 찾을 수 있습니까?런타임시 내 dylib의 경로를 어떻게 검색합니까?
Windows 백그라운드에서 나와서 GetModuleFileName(dllHandle,...)
으로 전화를 걸었습니다.
현재 프로세스의 실행 파일 경로를 알려주는 NSGetExecutablePath()
이 있습니다. 현재의 dylib 경로를 알려주는 등가물이 있습니까?
OS X에서는 런타임에로드 된 경로를 dylib에서 어떻게 찾을 수 있습니까?런타임시 내 dylib의 경로를 어떻게 검색합니까?
Windows 백그라운드에서 나와서 GetModuleFileName(dllHandle,...)
으로 전화를 걸었습니다.
현재 프로세스의 실행 파일 경로를 알려주는 NSGetExecutablePath()
이 있습니다. 현재의 dylib 경로를 알려주는 등가물이 있습니까?
dladdr(3)을 사용하십시오. 주어진 메모리 주소에서 dladdr()은 다른 데이터 중에서 주소를 포함하는 라이브러리의 경로를 갖는 구조체를 출력합니다. 예를 들어, 라이브러리 내부 :
#include <stdio.h>
#include <dlfcn.h>
void test(void) {
Dl_info info;
if (dladdr(test, &info)) {
printf("Loaded from path = %s\n", info.dli_fname);
}
}
완벽한, 감사합니다. – snowcrash09
+1, NSGetExecutablePath를 언급하면이 페이지로 연결되는 문제를 해결할 수 있습니다. –