C++ 库函数的新实现,并在其中调用旧实现
我想在Linux中实现一些自定义库函数。例如,我想实现自己的pthread\u mutex\u lock、pthread\u mutex\u unlock、malloc和free函数。我已经读过LD_PRELOAD可以用来使用您自己的自定义函数,尽管我还没有详细介绍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函数在您要调用的库中查找函数
但我有一个问题,我也想在我的新实现中使用原始函数。这样做的诀窍是什么,因为两者都有相同的名称?您可以使用
dlopen
函数打开您替换的库(或者使用RTLD\u,如果已经加载,请参阅注释),然后使用dlsym
函数在您要调用的库中查找函数的地址。听起来是个不错的主意,我们将对此进行研究。谢谢您甚至不需要打开正在插入的库-使用dlsym(RLTD\u NEXT,“function”)
应该足以找到原始实现。