我正在尝试编写一个允许运行二进制文件的程序,当用另一个文件请求时替换某个文件。它是一个简单替换系统调用函数的库,与LD_PRELOAD一起使用。问题是它捕获打开(替换文件被读取),但写入总是返回到实际的指定文件。我应该知道其他任何“开放式”系统调用吗?
答案 0 :(得分:4)
没关系 - 愚蠢的错误。
没有检查绝对路径和相对路径......
答案 1 :(得分:2)
我不确定您的问题的原因是什么,但在您的计划中使用strace可能会提供一些见解。它应该是任何理智的Linux发行版的一部分。
答案 2 :(得分:2)
如果它是开放的写作,它很可能通过creat
函数(我猜fopen
会重定向你)。查看您的fcntl.h
以获取完整列表。
答案 3 :(得分:1)