Linux u盘助手(三)

来源:互联网 发布:html5整站源码带后台 编辑:程序博客网 时间:2024/04/29 21:12

    在u盘的热拔插监听部分,部分使用了前辈的代码https://github.com/wang-bin/qdevicewatcher。这一段时间对代码进行了细致的阅读并学习了netlink的部分机制,然后对项目相关部分进行了修改和去除冗余。

    netlink用于内核与用户的通信,机制是socket。在u盘热拔插监听实现中,只需要实现用户部分的socket,然后建立与内核部分的绑定。

 

   int s = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);     if (s == -1)      {         perror("socket");         return -1;     }     setsockopt(s, SOL_SOCKET, SO_RCVBUF, &buffersize, sizeof(buffersize));     ret = bind(s, (struct sockaddr *)&snl, sizeof(struct sockaddr_nl)); 

    然后通过recv()接受信息,通过对信息进行解析,判断状态。

u盘插入:


u盘拔出:


0 0
原创粉丝点击