一种反射机制

今天看dtc代码,有这样的一种实现,感觉还挺巧妙的。
先说过程,再说好处:

char *so = ...//读取配置文件,得到so的文件名
void* dll = dlopen(so, RTLD_NOW|RTLD_GLOBAL);//打开so
char *fun; //读取配置文件得到,得到方法名
typedef uint64_t (*fun_interface)(const char *key, int len, int left, int right);
fun_interface *foo= (fun_interface)dlsym(dll, fun);//得到函数指针
foo(a,b,c,d)//直接调用上述的foo就可以调用so里的函数了

这种实现的有点在于,不需要改变现有代码的情况下,修改so的代码,重新编写so,然后重新配置配置文件就可以实现函数的变换。

以后我可以在什么地方使用这种代码编写呢?
1. 比如加解密的场景中可以使用,我们可以编写好函数接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值