我想在Linux中实现一些自定义库函数。例如,我想实现自己的 pthread_mutex_lock , pthread_mutex_unlock , malloc 和免费功能。我读过 LD_PRELOAD 可以用来使用你自己的自定义函数,虽然我还没有详细介绍。
但我有一个问题,我也想在我的新实现中使用原始函数。这样做的诀窍是什么,因为两者都有相同的名称?
答案 0 :(得分:3)
您可以使用dlopen
函数打开您替换的库(如果已经加载了RTLD_NEXT,请参阅注释),然后使用dlsym
函数查找函数的地址。那个你要打电话的图书馆。