可以参考 :
**
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