C++ 库函数的新实现,并在其中调用旧实现

C++ 库函数的新实现,并在其中调用旧实现,c++,c,linux,C++,C,Linux,我想在Linux中实现一些自定义库函数。例如,我想实现自己的pthread\u mutex\u lock、pthread\u mutex\u unlock、malloc和free函数。我已经读过LD_PRELOAD可以用来使用您自己的自定义函数,尽管我还没有详细介绍 但我有一个问题,我也想在我的新实现中使用原始函数。这样做的诀窍是什么,因为两者都有相同的名称?您可以使用dlopen函数打开您替换的库(或者使用RTLD\u,如果已经加载,请参阅注释),然后使用dlsym函数在您要调用的库中查找函数

我想在Linux中实现一些自定义库函数。例如,我想实现自己的pthread\u mutex\u lockpthread\u mutex\u unlockmallocfree函数。我已经读过LD_PRELOAD可以用来使用您自己的自定义函数,尽管我还没有详细介绍


但我有一个问题,我也想在我的新实现中使用原始函数。这样做的诀窍是什么,因为两者都有相同的名称?

您可以使用
dlopen
函数打开您替换的库(或者使用RTLD\u,如果已经加载,请参阅注释),然后使用
dlsym
函数在您要调用的库中查找函数的地址。

听起来是个不错的主意,我们将对此进行研究。谢谢您甚至不需要打开正在插入的库-使用
dlsym(RLTD\u NEXT,“function”)
应该足以找到原始实现。