在linux驱动开发过程中,经常会遇到在/proc或者/tmpfs下增加文件的情况,/tmpfs下的文件通常都是对采集时间有要求,因此采集完成后保存在相关的文件中,系统需要时进行获取。对应的数据通常也不是实时的,除非利用定时器或者信号配合先采集后进行获取。对于/tmpfs下的文件,可使用”ls -lh”查看出文件的实际大小。这说明文件实际是被写入了内容的,通常/tmpfs文件会在应用层进行读写操作。
对应地/proc文件一般只是类似一个壳,实际上并不是把内容写入文件中,使用“ls -lh”查看大小通常为0。/proc文件是在获取时(执行cat)实时采集并显示出来,结果是实时的并且不占空间,跟/tmpfs相比,/proc文件保存在内核内存中, 因为读取性能及对系统影响较小。
开发的步骤大致为:
1、驱动加载时,利用proc_mkdir创建/proc文件路径。利用proc_create创建文件。
2、实现文件对应的file_operations结构,将相关处理函数注册到Linux内核。
3、file_operations中相关函数接口的实现,一般情况下需实现.open(对应cat操作)和.write(对应echo操作)函数。
4、驱动卸载时,利用remove_proc_entry删除文件路径和文件。
下面通过一个例子来展示/proc文件的开发过程:
#include <linux/module.h>
#include <linux/kernel.h&g