我想在Linux中实现一些自定义库函数。 例如,我想实现我自己的pthread_mutex_lock , pthread_mutex_unlock , malloc和free函数。 我读过LD_PRELOAD可以用来使用你自己的自定义函数,虽然我没有深入细节。
但是我有一个问题,我也想在我的新实现中使用原始函数。 这样做会有什么窍门,因为两者都有相同的名字?
您可以使用dlopen
函数来打开您替换的库(或者,如果RTLD_NEXT已经加载,请参阅注释),然后使用dlsym
函数查找该库中要调用的函数的地址。