libC.c 456 B

123456789101112131415161718192021222324252627282930
  1. #include <dlfcn.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #define LIBNAME "libB.so"
  5. void _libC_fini(void);
  6. void _libC_fini(void)
  7. {
  8. printf("libC_fini():finish - atexit()\n");
  9. }
  10. void libC_fini(void);
  11. void libC_fini(void)
  12. {
  13. _libC_fini();
  14. }
  15. void libC_func(void);
  16. void libC_func(void)
  17. {
  18. void *libB;
  19. libB = dlopen(LIBNAME, RTLD_LAZY);
  20. if (!libB) {
  21. fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
  22. exit(1);
  23. }
  24. atexit(libC_fini);
  25. }