linux- c检测USB/SD卡热插拔(netlink)

可以参考 :
**

https://blog.csdn.net/u013566722/article/details/78806217

拔插USB 或者SD卡,系统会打印相关的log信息,recvmsg 就会捕获到,然后解析相应的关键字段信息来判断usb或者sd卡是否拔掉或者插入。

比如:sd卡拔插事件收到后,可以解析buf,解析方法如下:
**

static int parse_date(char *buf, int len)
{
    if (strstr(buf, "ACTION=add") != 0
        && strstr(buf, "DEVNAME=/dev/mmcblk0p1") != 0) {
        return 2;//代表插入sd卡
    }
    else if (strstr(buf, "ACTION=remove") != 0
        && strstr(buf, "DEVNAME=/dev/mmcblk0p1") != 0)
    {
        return 1;//代表拔掉sd卡
    }
	return 0;
}

关键的字段信息ACTION=add / ACTION=remove ,都是内核系统打印出来的,上层应用就可以根据此字段来判断sd卡的状态。 类似的usb也是这样判断。其中字段里会告诉当前设备的类型。是sd卡还是usb

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值