内核调试技术 profs

本文详细介绍了/proc文件系统的基本概念、如何通过特定函数创建和删除文件,以及时常用于获取系统信息的常用文件目录,如/bus/input/目录及其内的handlers文件。通过实例演示了如何使用proc_mkdir和proc_create函数创建目录和文件,以及如何利用remove_proc_entry函数进行文件删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     /proc文件系统是一种特殊的,由软件创建的文件系统,内核通过它向用户输出信息;

/proc下面的每个文件都绑定一个内核函数,当用户读取其中文件时,内核函数会动态生

成文件的内容。例如,/proc/modules列出的是当前系统中已加载模块;linux中的很多工

具都是通过/proc来获取它们所需要的信息,如ps,top等

        /proc文件可以通过下面函数创建:

struct proc_dir_entry * proc_mkdir(const char *name, struct proc_dir_entry *parent)

        创建名字为name的文件目录, 其中,name 为指定文件目录路径及名字, parent为

创建文件的上一级路径,如果设为null,则表示在/proc的根路径下创建;

struct proc_dir_entry * proc_create(const char *name, mode_t mode, struct proc_dir_entry *parent, 

const struct file_operations *proc_fops)

        在指定的parent目录下创建名字为name,权限为mode,file_operations为proc_fops的文件;

        /proc文件通过下面函数接口删除:

void  remove_proc_entry(const char *name, struct proc_dir_entry *parent)

       删除parent指定目录下的name文件;name可以是一般文件也可以是目录文件;


创建/proc/bus/input/目录文件,并在该目录下生成handlers文件;

        struct proc_dir_entry *entry;

        entry = proc_mkdir("bus/input", NULL); 

        proc_create("handlers", 0,entry, &proc_fops);

删除已经创建文件:

        remove_proc_entry("handlers", entry);

        remove_proc_entry("bus/input", NULL);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值