问题描述
|
我想在Linux中实现一些
自定义库
函数。例如,我想实现自己的pthread_mutex_lock,pthread_mutex_unlock,malloc和free
函数。我读过LD_PRELOAD可以用来使用您自己的
自定义函数,尽管我没有详细介绍。
但是
我有一个问题,我也想在新的实现中使用原始
功能。这样做的诀窍是什么,因为两者将具有相同的
名称?
解决方法
您可以使用
dlopen
函数打开要替换的库(或如果已加载RTLD_NEXT,请使用注释,参见注释),然后使用ѭ1that函数在要调用的库中查找该函数的地址。