我正在尝试使用系统调用来显示目录的内容。我已被指向vfs_readdir的方向,但我不知道如何使用它或传递给它以获取目录的内容。我想要做的就是能够在类似于ls工作方式的目录中列出文件。 (我最终打算将它存储在某种缓冲区中,但是现在能够打印目录的内容就足够了。)
答案 0 :(得分:0)
我认为您可能需要使用filp_open打开目录。
对于“flags”参数,你可能需要在include / linux / namei.h中列出一些LOOKUP_标志的组合
你可以看到build_open_flags在这里做了什么:http://lxr.linux.no/#linux+v3.1.5/fs/open.c#L876为filp_open提供标志。
据我所知,filp_open是在内核空间中打开文件的正确方法。但是,这样做是不鼓励的。
如果你从属于用户进程的“普通”线程的上下文中这样做,我想你会没事的。