我有一些使用实现虚拟文件系统的库的Python代码。为了使这些虚拟文件系统的驱动程序工作,需要重写/替换一堆C函数(例如readdir(),opendir(),fseek())- 用在.so/.cpp文件中定义的替换内容。通常可以通过将LD_PRELOAD设置为该.so文件来完成此操作。但是,我需要能够在运行时覆盖这些函数,并在使用那些被覆盖的函数的Python函数执行后最好恢复到非被覆盖函数。这可能吗?
我猜你想要使用ctypes。这里有一个讨论:https://docs.python.org/2/library/ctypes.html