我编写了一个系统调用,它打开一个目录并获取文件对象和dentry结构。我试图使用list_for_each()宏列出所有条目,包括子目录中的条目。问题是它只显示当前在dentry缓存中的内容。如果我用nautilus打开目录然后重新运行系统调用,则会列出所有条目。有没有办法检查确切的条目列表或刷新缓存?
f = s_open(tpath);
fle = fget(f);
d = fle->f_path.dentry;
list_for_each ( dentry ) {
...
}
sys_close(f);
答案 0 :(得分:3)
为什么使用系统调用来读取目录的内容?听起来你真的应该在用户区,然后你应该使用像opendir这样的东西。