Syntax
#include <dlfcn.h> |
Description
The dlfcn.h header defines macros for use in the dlopen() construction of a mode argument. In addition, dlfcn.h contains structures and prototypes of the function calls.
#ifndef _DLFCN_H
#define _DLFCN_H
#if defined(_LITERAL_ENCODING_ASCII)
# if (_LITERAL_ENCODING_ASCII - 0 == 1) && !defined(_ASCII_SOURCE)
# define _ASCII_SOURCE 1 /*automatische Umsetzung*/
# endif
#endif
#if defined(_ASCII_SOURCE)
# if (_ASCII_SOURCE - 0 != 0) && (_ASCII_SOURCE - 0!= 1)
# error unsupported _ASCII_SOURCE
# endif
#else
# define _ASCII_SOURCE 0
#endif
struct Dl_info {
const char * dli_fname;
void * dli_fbase;
const char * dli_sname;
void * dli_saddr;
};
extern void *__dlopen_ascii(const char *, int);
extern void *__dlsym_ascii(void *, const char *);
extern char *__dlerror_ascii(void);
extern int __dladdr_ascii(void *, struct Dl_info *);
extern void *dlopen(const char *, int );
extern void *dlsym(void *, const char *);
extern int dlclose(void *);
extern char *dlerror(void);
extern int dladdr(void *, struct Dl_info *);
#if (_ASCII_SOURCE - 0 == 1)
# ifdef _MAP_NAME
# define dlopen __dlopen_ascii
# define dlsym __dlsym_ascii
# define dlerror __dlerror_ascii
# define dladdr __dladdr_ascii
# else
# define dlopen(_n, _f) __dlopen_ascii(_n, _f)
# define dlsym(_h, _s) __dlsym_ascii(_h, _s)
# define dlerror() __dlerror_ascii()
# define dladdr(_v, _i) __dladdr_ascii(_v, _i)
# endif
#endif /* _ASCII_SOURCE == 1 */
/* valid values for mode argument to dlopen */
#define RTLD_LAZY 1 /* lazy function call binding */
#define RTLD_NOW 2 /* immediate function call binding */
#define RTLD_GLOBAL 4 /* symbols in this dlopen'ed obj are visible */
/* to other dlopen'ed objs */
#define RTLD_LOCAL 8 /* symbols in this dlopen'ed obj are */
/* invisible to other dlopen'ed objs */
#define RTLD_MAIN_UPPERCASE 0x10 /* uppercase names in main program */
#define RTLD_MAIN_DOLLAR 0x20 /* dollar for underscore in names */
/*
* defines for dlsym
* RTLD_DEFAULT searches all objects loaded
* RTLD_NEXT searches all objects loaded after the object the call comes from
* RTLD_SELF searches all objects loaded after the object the call comes from
* including this object as the first one
*/
#define RTLD_DEFAULT (void *)(-2)
#define RTLD_NEXT (void *)(-1)
#define RTLD_SELF (void *)(-3)
#endif /* _DLFCN_H */
See also
dlopen(), dlclose(), dlsym(), dlerror()