Linux API/linux2016.04.04 09:21

어떻게 보면 당연한..(?)

함수 포인터


#include <stdio.h>

#include <dlfcn.h>

#include "ctest.h"


int main(int argc, char **argv) 

{

   void *lib_handle;

   double (*fn)(int *);

   int x;

   char *error;


   lib_handle = dlopen("/opt/lib/libctest.so", RTLD_LAZY);

   if (!lib_handle) 

   {

      fprintf(stderr, "%s\n", dlerror());

      exit(1);

   }


   fn = dlsym(lib_handle, "ctest1");

   if ((error = dlerror()) != NULL)  

   {

      fprintf(stderr, "%s\n", error);

      exit(1);

   }


   (*fn)(&x);

   printf("Valx=%d\n",x);


   dlclose(lib_handle);

   return 0;

[링크 : http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html]


[링크 : http://linux.die.net/man/3/dlopen]

[링크 : http://linux.die.net/man/3/dlsym]

'Linux API > linux' 카테고리의 다른 글

메시지 큐 - ipc  (0) 2016.06.28
pthread mutex shm_open  (0) 2016.06.27
리눅스 동적 라이브러리(*.so) 사용하기  (0) 2016.04.04
리눅스 커널 모듈 관련 문서  (0) 2015.11.06
readl(), writel()  (0) 2015.11.06
리눅스 모듈 프로그래밍 관련  (0) 2015.10.30
Posted by 구차니

댓글을 달아 주세요