应用层捕获uevent事件

device_add函数最终会调用kobject_event_env函数,如果event_helper存在的话,那么会调用这个函数

 

event_helper可以通过如下方法设置 echo /your_helper_path/your_helper_cmd > /proc/sys/kernel/hotplug

 

在嵌入式中这个event_helper是mdev,当然你可以自己写一个helper,我自己写了一个

------------------------------------

#include <stdio.h>

 

int main(int argc, char **argv)

{

    char *action;

    char *envpath;

    char *subsystem;

 

    action = getenv("ACTION");

    envpath = getenv("DEVPATH");

    subsystem = getenv("SUBSYSTEM");

 

    if (subsystem && !strcmp(subsystem, "net")) {

        mkdir("/hao", 0777);

    }

}

 

---------------------------------------

之所以创建目录是printf没法打印信息,通过查看/hao的存在来确定该event helper已经被调用

 

其实很简单device_add会通过两种方式通知应用层,一个是netlink,另外一个是event helper的调用,上层应用想要知道是否有设备添加,要么侦听netlink, 要么在event helper进行事件处理和分发,android也是如此。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值