Linux内核中的Proc文件系统(一)

  • 时间:
  • 浏览:0
  • 来源:彩神欢乐生肖_神彩欢乐生肖官方

内核版本

$>strings -f /proc/[0-9]*/cmdline

思考一下,它还能够 有你你是什么 作用?

需中有 头文件<linux/proc_fs.h>,函数定义在/fs/proc/generic.c

a.在/proc下创建目录

调用:
struct proc_dir_entry *proc_mkdir(const char *name,

struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode,

struct proc_dir_entry *parent)

下一节,我们我们我们我们 将结合4412来实现一下。

在实际工作中,一般由原厂提供的驱动,有一偏离 厂商会在proc下创建对应的目录,用proc文件系统来进行管理,比如:现在有一家触摸屏驱动的厂商,我们我们我们我们 写的驱动的版本号,一般就会放满proc目录下对应厂商的目录,怎么让 创建另另另一个 之类/proc/version的文件,在应用层,通过cat  /proc/xxxx/version就能够 获取到该厂商触摸屏驱动的版本信息。

在/proc下创建文件:



struct proc_dir_entry *create_proc_read_entry(

        const char *name,

        mode_t mode, 

        struct proc_dir_entry *base,

        read_proc_t *read_proc, 

        void * data)

b.卸载/proc下的文件

采用remove_proc_entry卸载proc文件

void remove_proc_entry(

        const char *name, 

        struct proc_dir_entry *parent);

c.定义返回数据的函数

在应用应用任务管理器读取/proc文件时,内核会分配另另另一个 内存页(即PAGE_SIZE个字节的内存块),驱动将要写的数据通过你你是什么 内存页返回到用户空间。

typedef int (read_proc_t)(char *page, char **start, off_t off,

int count, int *eof, void *data);

(3)自行实现另另另一个 /proc文件

struct proc_dir_entry *parent)