23 lines
513 B
C++
23 lines
513 B
C++
|
#include <dlfcn.h>
|
||
|
#include <err.h>
|
||
|
#include <unistd.h>
|
||
|
|
||
|
int
|
||
|
main(void)
|
||
|
{
|
||
|
static const char msg1[] = "main started\n";
|
||
|
static const char msg2[] = "main after dlopen\n";
|
||
|
static const char msg3[] = "main terminated\n";
|
||
|
|
||
|
void *handle;
|
||
|
|
||
|
write(STDOUT_FILENO, msg1, sizeof(msg1) - 1);
|
||
|
handle = dlopen("h_initfini3_dso.so", RTLD_NOW | RTLD_LOCAL);
|
||
|
if (handle == NULL)
|
||
|
err(1, "dlopen");
|
||
|
write(STDOUT_FILENO, msg2, sizeof(msg2) - 1);
|
||
|
dlclose(handle);
|
||
|
write(STDOUT_FILENO, msg3, sizeof(msg3) - 1);
|
||
|
return 0;
|
||
|
}
|