2024-07-24 buildroot c语言应用获取 kernel kobject_uevent_env 发送的消息,侦测USB口变化。
创始人
2024-12-16 15:37:00
0

一、kobject_uevent_env 是 Linux 内核中的一个函数,用于发送内核事件到用户空间。它主要用于生成和发送与内核对象(kobject)相关的事件通知,这些事件通常用于通知用户空间程序(如 udev)有关硬件的变化或其他系统状态变化。

二、用户空间程序可以通过使用 netlink 套接字来接收 kobject_uevent_env 发送的消息。

三、测试C语言代码

        3.1 kernel 使用kobject_uevent_env 发送信息。

        3.2 c语言app代码

 #include  #include  #include  #include  #include  #include  #include   #define UEVENT_BUFFER_SIZE 512 #define NETLINK_KOBJECT_UEVENT 15  int main(void) {     struct sockaddr_nl sa;     int sock;     char buf[UEVENT_BUFFER_SIZE];      sock = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);//在较新的 Linux 内核版本中,NETLINK_KOBJECT_UEVENT 的值是 15     if (sock < 0) {         perror("socket");         return -1;     } 	     memset(&sa, 0, sizeof(sa));     sa.nl_family = AF_NETLINK;     sa.nl_groups = 1;      if (bind(sock, (struct sockaddr *)&sa, sizeof(sa)) < 0) {         perror("bind");         close(sock);         return -1;     }      while (1) { 		printf("Waiting data............\n");         int len = recv(sock, buf, sizeof(buf), 0); 	            if (len < 0) {             perror("recv");             close(sock);             return -1;         }                   printf("Read len=%d\n",len); 		 for (int i = 0; i < len; ) { 		  char *event = buf + i; 		  printf("DATA:%s \r\n",event); 		   		  if (strncmp(event, "USB_STATE=DISCONNECTED",strlen("USB_STATE=DISCONNECTED")) == 0) {                printf("USB device is disconnected!\n");           }   		  i += strlen(event) + 1; 		}     }      close(sock);     return 0; } 

四、实例运行效果,当USB 口有变化的时候,会接收到消息。

相关内容

热门资讯

做出回应!微乐小程序辅助开发透... 做出回应!微乐小程序辅助开发透视,电脑版海盗来了辅助,切实教程(总是是有挂)-哔哩哔哩1、首先打开微...
透视实测!xpoker辅助控制... 透视实测!xpoker辅助控制(透视)开挂辅助挂(一贯存在有挂)-哔哩哔哩1、用户打开应用后不用登录...
透视最新!newpoker怎么... 透视最新!newpoker怎么安装脚本,we-poker软件,模板教程(其实是有挂)-哔哩哔哩1、n...
备受关注的!新九哥脚本,创思维... 备受关注的!新九哥脚本,创思维激k看底牌辅助软件,切实教程(一直是真的挂)-哔哩哔哩该软件可以轻松地...
透视私人局!pokemomo辅... 透视私人局!pokemomo辅助工具(透视)开挂辅助器(一贯是有挂)-哔哩哔哩1、首先打开pokem...
透视游戏!hhpoker辅助挂... 透视游戏!hhpoker辅助挂,哈糖大菠萝攻略,手段教程(一贯真的有挂)-哔哩哔哩1、哈糖大菠萝攻略...
无独有偶!中至赣牌圈五十k黑科... 无独有偶!中至赣牌圈五十k黑科技,四川游戏家园辅助软件下载,新版2025教程(果然真的是有挂)-哔哩...
透视挂!hhpoker辅助软件... 透视挂!hhpoker辅助软件是真的么(透视)开挂辅助软件(果然存在有挂)-哔哩哔哩1、许多玩家不知...
透视计算!wepoker俱乐部... 透视计算!wepoker俱乐部辅助,wepoker辅助辅助,项目教程(原来是有挂)-哔哩哔哩1、操作...
近期!科乐填坑辅助器,越乡游辅... 近期!科乐填坑辅助器,越乡游辅助器,系统教程(都是是真的挂)-哔哩哔哩科乐填坑辅助器辅助器中分为三种...