proc文件系统是一种特殊的、由软件创建的文件系统,内核使用它向外界导出信息,/proc下面的每个文件都绑定一个内核函数,用户读取其中的文件时,该函数动态地生成文件的“内容”。例如,/proc/modules列出的是当前载入模块的列表。
在Linux系统中,对/proc的使用很频繁。现代Linux发行版本中的很多工具都是通过/proc来获取它们需要的信息,例如ps、top和uptime。有些设备驱动程序也通过/proc导出信息,而我们自己的驱动程序当然也可以这么做。因为/proc文件系统是动态的,所以驱动程序模块可以在任何时候添加或删除其中的入口项。
/proc入口不单单是可以读取的,同时也可以写入数据。当然之前提到的sysfs也可以完成类似的功能(向外界导出信息)。
和proc相关的函数都定义在:kernel-4.9/include/linux/proc_fs.h
数据项:
struct proc_dir_entry结果可以用来表示proc系统中的一个文件夹或者文件。
创建文件夹:
static inline struct proc_dir_entry *proc_mkdir(const char *name,
struct proc_dir_entry *parent) {return NULL;}
name:表示名字
parent:表示父文件夹,当为NULL时候表示在/proc根目录
创建文件:
st