现在的位置: 首页 > 综合 > 正文

proc文件系统

2017年08月25日 ⁄ 综合 ⁄ 共 1343字 ⁄ 字号 评论关闭

proc文件系统-------

可以通过/proc/meminfo,查询当前内存使用情况。

结论--proc文件系统是一种在用户态检察内核状态的机制。

proc文件系统子目录或文件----

bus---------------总线以及总线上的设备信息

apm--------------高级电源管理信息

devices----------可用的设备信息

driver-------------已经启用的驱动程序

interrupts-------中断信息

ioports-----------端口使用信息

version-----------内核版本

特点-------------

每个文件都规定了严格的权限

可以用文本编辑程序读取

不仅可以有文件,还可以有子目录。

可以自己编写程序添加一个/proc目录下的文件。

文件的内容都是动态创建的,并不 存在磁盘上

内核描述---

struct proc_dir_entry

{

..........................................................

read_proc_t *read_proc;

write_proc_t *write_proc;

.........................................

}

创建proc文件-----

struct proc_dir_entry *create_proc_entry(

const char *name,要创建的文件名

mode_t mode,要创建的文件属性 默认0755

struct proc_dir_entry *parent这个文件的父目录

)

创建proc目录-------

struct proc_dir_entry *proc_mkdir(

const char *name,要创建的目录名

struct proc_dir_entry *parent这个目录的父目录

)

删除proc目录或文件-------

void remove_proc_entry (

const char *name,要删除的目录名或文件名

struct proc_dir_entry *parent所在的父目录

)

读写-------

为了能让用户读写添加的proc文件,需要挂接上读写回调函数

read_proc

write_proc

读操作----

int read_func(

char *buffer,把要返回给用户的信息写在buffer里,最大不超过PAGE_SIZE

char **stat,一般不使用

off_t off,偏移量

int count,用户要读取的字节数

int *peof,读到文件尾时,需要把*peof置1

void *data一般不使用

)

写操作-----

int write_func(

struct file *file,该proc文件对应的file结构,一般忽略。

const char *buffer,待写的数据所在的位置

unsigned long count,待写数据的大小

void *data一般不使用

)

实现流程---

1--调用create_proc_entry创建一个struct proc_dir_entry.

2--对创建的struct proc_dir_entry进行赋值read_proc,mode,owner,size,write_proc等等。





抱歉!评论已关闭.