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

  • 时间:
  • 浏览:5
  • 来源:uu快3倍率_uu快3网游_单双计划

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

struct proc_dir_entry *parent)

思考一下,它还可不须要有那些作用?

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

a.在/proc下创建目录

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

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

在/proc下创建文件:

struct proc_dir_entry *parent)

在实际工作中,一般由原厂提供的驱动,有一要素厂商会在proc下创建对应的目录,用proc文件系统来进行管理,比如:现在有一家触摸屏驱动的厂商,大伙儿儿写的驱动的版本号,一般就会插进proc目录下对应厂商的目录,如果创建另有另三个 同类/proc/version的文件,在应用层,通过cat  /proc/xxxx/version就可不须要获取到该厂商触摸屏驱动的版本信息。



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.定义返回数据的函数

在tcp连接池池读取/proc文件时,内核会分配另有另三个 内存页(即PAGE_SIZE个字节的内存块),驱动将要写的数据通过你这个 内存页返回到用户空间。

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

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

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

内核版本

下一节,大伙儿儿将结合4412来实现一下。