我目前正在尝试创建一个内核模块,它将根据内核事件生成数据并将它们推送到文件中.在读到这很糟糕(并且我同意)之后,我认为将数据放在/ proc文件中会更有意义,用户程序可以在必要时从中获取数据.但是,这个想法导致了各种各样的问题,特别是何时以及如何清除这个文件.所以我想......"为什么我不在/ proc中创建命名管道并从中读取?"
我已经掌握了为proc文件设置读取函数和写入函数的一般要点,但是我仍然遇到了如何解决这个问题的概念性问题.也就是说,我如何编写这样一个函数来获取任意数据并将其从内核写入这样的管道?有没有人知道如何将数据从内核空间推送到命名管道?最后,它不具备成为一个/ proc文件(特别是如果这是我的错,这样做),但是这是我得出的结论.然后我将不得不弄清楚如何从用户空间程序附加到它,但我觉得这是一个单独的问题.
您要做的不是创建命名管道,而是创建"角色设备".如果您想要从内核到用户空间和返回的简单交互或流数据,这是常用的方法.我建议在Linux内核中查找类似的设备并查看它们的功能.