我的understanding是顺序文件(由struct seq_file
表示)是在内核和用户进程之间传输数据的接口,而不会在磁盘上显示任何文件。当用户读取顺序文件(因为它是可读的)时,相关的内核读取函数将数据传输到缓冲区(接口已分配),然后用户进程从中读取。
我的问题:内核是否可以在没有用户空间启动的情况下调用read函数?
我的目标:我希望用户进程在更改特定顺序文件时等待inotify事件。
如果我的理解错误,请纠正我。感谢。
答案 0 :(得分:0)
Seq_files主要用于从/ proc用户空间读取的批处理模式。 seq文件接口将/ proc文件的内容视为一系列对象。如果有来自用户的读取请求,例如,读取日志缓冲区,与进程和内存相关的静态/动态信息,内核调用相关的读取请求并放入用户缓冲区,因此需要来自用户空间的请求。
此外,我不确定您的通知目的。一般来说,如果记录的信息用户从/ proc读取是否是最新的,则内核并不在意。不关心,我的意思是它没有任何版本保留它。典型的例子是执行ls
。列出目录内容时,事情可能会发生变化。内核继续在该特定时间读取目录的快照,尽管它在读取之后立即更新并且在显示给用户之前。