Mercurial > hg > CbC > CbC_gcc
view libvtv/testsuite/other-tests/dlopen.cc @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
#include <stdlib.h> #include <dlfcn.h> #include <stdio.h> typedef void (*voidfn)(void); int failures = 0; void __vtv_verify_fail (void **data_set_ptr, const void *vtbl_pointer) { failures++; return; } int main() { char so_name[] = "so0.so"; void * dlhandle = dlopen(so_name, RTLD_NOW); if (!dlhandle) { fprintf(stderr, "dlopen %s error: %s\n", so_name, dlerror()); exit(1); } voidfn so_entry = (voidfn)dlsym(dlhandle, "so_entry_0"); if (!so_entry) { fprintf(stderr, "dlopen %s dlsym error: %s\n", so_name, dlerror()); exit(2); } so_entry(); dlclose(dlhandle); }