如何在运行时覆盖C函数(例如使用LD_PRELOAD)?

2024-09-28 19:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些Python代码使用实现虚拟文件系统的库。为了让这些虚拟文件系统的驱动程序工作,需要用.so/.cpp文件中定义的替换来覆盖/替换一堆C函数(如readdir()、opendir()、fseek())。通常,这可以通过将ldu PRELOAD设置为.so文件来完成。但是,我需要能够在运行时重写这些函数,并且在理想情况下,一旦使用这些被重写函数的Python函数被执行,就可以恢复到非重写函数。这可能吗?在


Tags: 文件函数代码so定义驱动程序情况cpp