Linux u盘助手(三)

    在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盘拔出:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值