我正在尝试挂钩unlinkat函数,但只能得到文件名而非绝对路径。我需要绝对路径来进行字符串比较。当我执行rm -r命令时,会得到文件名,但如果我得到了绝对路径就可以工作。请告诉我怎样才能得到绝对路径。
以下是我的代码:
long mw_sys_unlink(int dfd, const char *filename ,int flag)
{
long ret;
if( strstr(filename,"/tmp/a/"))
{
printk(KERN_INFO "file %s has not been deleted by kernel module\n", filename);
return -1;
}
else
{
ret = orig_sys_unlink(dfd ,filename,flag);
printk(KERN_INFO "file %s has been deleted", filename);
return ret;
}
}
unlink
函数是否像平常一样被调用了?还是返回的路径无效?无论如何,我相信您可以自己调试它。 - Arthur