2017-09-28 9 views
0

dlopen + dlsym 호출을 사용하여 런타임에 라이브러리를로드하려고합니다. dlsym()을 사용하여로드해야하는 함수의 이름을 나열하고 'for'루프를 사용하여이 함수를로드하려고합니다. 'dl'호출을 사용하여 함수를 표시하는 방법 ('gcc'속성 사용)이로드 될 수 있습니까?동적으로로드하는 함수의 함수 속성

고마워, 램.

+0

간단한 방법을 사용할 필요가, 또는해야합니다 변수 들로서'dlsym' ... –

+0

더 설명해 주시겠습니까? – ram

답변

0

유닉스 계열 시스템에는 .so 파일에 포함 된 기호를 반환하는 nm이라는 명령이 있습니다. 사용 범위는 nm -g filename.so입니다 (자세한 내용은 here을 참조하십시오).

이 명령을 exec 또는 이와 비슷한 이름으로 부를 수 있습니다. 당신이 간부를 사용할 수없는 경우

, 당신은 함수의 이름 채워 하나 개의 기능을 확인하기 위해 source code of the nm 명령의 일부를 가지고있을 것입니다 프로그램에서

+0

그러나 nm은 주어진 .so의 모든 기호를 나열합니다. 나는 단지 몇 가지 기능만을 찾고 있습니다. – ram

+0

'nm'을 호출하고 C 코드의 출력에서 ​​원하는 심볼을 검색해야한다고 생각합니다. 또는 명령을 실행 중이므로'grep' 명령을 사용하여 동일한'exec' 명령에서'nm'의 출력을 파싱 할 수 있습니다. – Ararararagi

+0

grep 출력에서 ​​필요한 기능 만 어떻게 찾을 수 있습니까? – ram