23,128
社区成员
发帖
与我相关
我的任务
分享
/*
* file: main.c
* by: mymtom
*/
#include <dlfcn.h>
#include <stdio.h>
static void
main_hello(void)
{
printf("%s:%s\n", __FILE__, __FUNCTION__);
}
static void
main_hello2(void)
{
printf("%s:%s\n", __FILE__, __FUNCTION__);
}
int
main(void)
{
void *h;
void *h2;
void (*f)(void (*pf)(void));
void (*f2)(void (*pf)(void));
h = dlopen("./libmlib.so", 0);
h2 = dlopen("./libmlib2.so", 0);
f = (void(*)(void(*)(void)))dlsym(h, "hello");
f2 = (void(*)(void(*)(void)))dlsym(h2, "hello");
f(main_hello);
f2(main_hello2);
dlclose(h);
dlclose(h2);
}
/*
* file: mlib.c
* by: mymtom
*/
#include <stdio.h>
void
hello(void (*pf)(void))
{
printf("%s:%s\n", __FILE__, __FUNCTION__);
pf();
}
/*
* file: mlib2.c
* by: mymtom
*/
#include <stdio.h>
void
hello(void (*pf)(void))
{
printf("%s:%s\n", __FILE__, __FUNCTION__);
pf();
}
/*
* file: main.c
* by: mymtom
*/
#include <dlfcn.h>
int
main(void)
{
void *h;
void *h2;
void (*f)(void);
void (*f2)(void);
h = dlopen("./libmlib.so", 0);
h2 = dlopen("./libmlib2.so", 0);
f = (void(*)(void))dlsym(h, "hello");
f2 = (void(*)(void))dlsym(h2, "hello");
f();
f2();
dlclose(h);
dlclose(h2);
return (0);
}
/*
* file: mlib.c
* by: mymtom
*/
#include <stdio.h>
void
hello(void)
{
printf("%s:%s\n", __FILE__, __FUNCTION__);
}
/*
* file: mlib2.c
* by: mymtom
*/
#include <stdio.h>
void
hello(void)
{
printf("%s:%s\n", __FILE__, __FUNCTION__);
}