Posted to tcl by patthoyts at Thu Dec 21 14:37:39 GMT 2006view pretty
#include <stdlib.h>
#include <stdio.h>
#include <dlfcn.h>
int
thingy()
{
return 42;
}
int
main(int argc, char **argv)
{
const char *module = NULL;
const char *symbol = NULL;
void *pfn = NULL, *handle = NULL;
if (argc < 2 || argc > 3) {
printf("usage: dltest executablefile symbol\n");
return 1;
} else if (argc == 2) {
symbol = argv[1];
module = argv[0];
} else {
module = argv[1];
symbol = argv[2];
}
if (module != NULL) {
handle = dlopen(module, RTLD_LAZY);
if (handle == NULL) {
perror("dlopen");
return 1;
}
}
pfn = dlsym(handle, symbol);
if (pfn != NULL) {
printf("Found symbols.\n");
}
if (module != NULL) {
dlclose(handle);
}
return 0;
}