1#ifndef _DLFCN_H 2#define _DLFCN_H 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#include <features.h> 9 10#define RTLD_LAZY 1 11#define RTLD_NOW 2 12#define RTLD_NOLOAD 4 13#define RTLD_NODELETE 4096 14#define RTLD_GLOBAL 256 15#define RTLD_LOCAL 0 16 17#define RTLD_NEXT ((void *)-1) 18#define RTLD_DEFAULT ((void *)0) 19 20#define RTLD_DI_LINKMAP 2 21 22int dlclose(void *); 23char *dlerror(void); 24void *dlopen(const char *, int); 25void *dlsym(void *__restrict, const char *__restrict); 26 27#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 28typedef struct { 29 const char *dli_fname; 30 void *dli_fbase; 31 const char *dli_sname; 32 void *dli_saddr; 33} Dl_info; 34int dladdr(const void *, Dl_info *); 35int dlinfo(void *, int, void *); 36#endif 37 38#ifdef __cplusplus 39} 40#endif 41 42#endif 43