c - 在 C 中重定向 posix 文件调用

标签 c posix standard-library io-redirection posix-api

我们有一个“库”(一组我们不想更改的代码),它是从可以直接访问 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/

相关文章:

C 数学运算顺序

c - 如何在结构中表示 DNS 资源记录?

c++ - 进程共享 pthread_cond_t 在 gcc 8.4 中不起作用,但在 gcc 4.8.5 中起作用

c - 如何让 mmap 内存同步到文件?

c - 在同一个 C 程序中同时使用 putchar 和 printf ?

c++ - 如何找出某个标准C++函数的实现细节?

c++ - 为什么核心 C 或 C++ 文本不提及声音或图形?

c - GNU make %-style 模式规则的可移植等价物

c++ - 检测我是否可以通过标准输入捕获箭头键

c++ - C++ 的标准映射插入语义的基本原理?