我们有一个“库”(一组我们不想更改的代码),它是从可以直接访问 2 个文件的角度编写的。它直接在文件描述符上使用“打开”、“读取”和“查找”posix 调用。
但是,现在我们有一个无法通过标准 IO 调用访问的专有文件系统。鉴于我们不想重写代码,如果我们可以将 IO 调用重定向到已知函数,然后将其用作接口(interface),那就太好了。
是否有任何方法可以更改上面使用的调用,以便可以用新的函数调用覆盖“read”和“seek”?
谢谢。
最佳答案
当您说您不想更改库代码时,您的意思是您想要使用现有的二进制代码,还是只使用源代码?如果你有源代码并且可以重新编译,我会在构建库时简单地将 -Dread=my_read -Dopen=my_open
等传递给编译器,然后提供你自己的 my_read
等功能。
关于c - 在 C 中重定向 posix 文件调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013173/