【问题标题】:How to read/write from/to a linux /proc file from kernel space?如何从内核空间读取/写入 linux /proc 文件?
【发布时间】:2011-05-22 23:03:48
【问题描述】:

我正在编写一个由用户程序和内核模块组成的程序。内核模块需要收集数据,然后将其“发送”给用户程序。这必须通过 /proc 文件来完成。现在,我创建了文件,一切都很好,并且花了很长时间阅读互联网寻求答案,但仍然找不到。您如何内核空间读取/写入 /proc 文件?提供给 procfile 的 write_proc 和 read_proc 用于从 USER 空间读取和写入数据,而我需要模块能够自己写入 /proc 文件。

【问题讨论】:

    标签: linux kernel procfs


    【解决方案1】:

    这不是它的工作原理。当用户空间程序打开文件时,它们会根据具体情况动态生成。它们中的大多数是只读的,并且由一种通用机制生成:

    • 使用 create_proc_read_entry 注册条目
    • 提供一个在读取文件时调用的回调函数(按约定称为 read_proc)
    • 此回调函数应填充提供的缓冲区并(通常)调用 proc_calc_metrics 以更新提供给用户空间的文件指针等。

    您(来自内核)不会“写入”procfs 文件,而是在用户空间请求它们时动态提供结果。

    【讨论】:

      【解决方案2】:

      将数据传输到用户空间的方法之一是 seq_files。为了配置(写入)内核参数,您可能需要考虑 sys-fs 节点。

      谢谢, 维杰

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-20
        相关资源
        最近更新 更多