我成功地拦截了对read()、write()、open()、unlink()、rename()、creat()的调用,但不知何故,以完全相同的语义拦截stat()却没有发生。我已经使用LD_PRELOAD更改了执行环境。
我是不是遗漏了什么?
这段代码相当庞大,它的哪一部分最有帮助呢?
谢谢。
编辑:我让interposed stat()包装器保持简单,以检查它是否正常工作。
int stat(const char *path,struct stat *buff)
{
printf("client invoke: stat %s",path);
return 1;
}发布于 2011-11-23 12:47:36
如果您正在使用64位文件偏移量进行编译,那么stat()要么是一个宏,要么是一个解析为stat64()的重定向函数声明,因此您也必须插入该函数。
https://stackoverflow.com/questions/8237294
复制相似问题