设备插入SD卡后,内核可以自动将其认出
但问题是,认出之后,设备文件的路径是什么?
有两个不同平台的设备,其一的设备名为/dev/discs/disc0/disc
而另一个设备,其名称为/dev/mmcblk0
这名字为啥不一样?其规则如何?
我从哪里可以读到这东西的名字呢?
求指导
------解决方案--------------------
读kernel中sd卡驱动代码
------解决方案--------------------
建议你使用NETLINK,下面是NETLINK的介绍
NETLINK是Linux内置功能,使用起来很简单:创建一个AF_NETLINK协议族下NETLINK_KOBJECT_UEVENT类型的特殊文件描述符(套结字)CppLive,然后利用setsocketopt允许该文件描述符(套结字)复用其他端口,再利用band函数将自身进程绑定到特殊文件描述符(套结字)CppLive,最后利用select在while循环内监听CppLive是否可读,如果可读则调用recv接收Linux系统内核传递过来的数据并打印出来,这些输出便是插拔信息。