c - 如何在Linux内核中使用vfs_readdir?

标签 c linux system kernel call

我正在尝试使用系统调用来显示目录的内容。我已经被指向 vfs_readdir 的方向,但我不知道如何使用它或传递给它什么来获取目录的内容。我想要做的就是能够列出目录中的文件,类似于 ls 的工作方式。 (我最终打算将其存储在某种缓冲区中,但现在只需打印目录的内容就足够了)。

最佳答案

我认为您可能必须使用 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 是在内核空间中打开文件的正确方法。然而,不鼓励这样做。

只要您从属于用户进程的“正常”线程的上下文中执行此操作,我认为您会没事的。

关于c - 如何在Linux内核中使用vfs_readdir?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461539/

相关文章:

C中全局变量的条件初始化

c - c中控制台函数有什么用

linux - 写入错误 : No space left on device in embedded linux

c++ - 有没有办法不等待 system() 命令完成? (在三)

system - 架构和微架构

c - 对 www.httpbin.org 的错误请求?

c - 在 Zephir 中编译时出错

linux - 无法通过 ngrok ssh 进入远程 Linux

linux - 如何在 Linux 中将 Phonon 与 Qt 集成?

c - 检测客户端断开连接