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、实时德...
透视辅助!wpk官网下载链接,... 透视辅助!wpk官网下载链接,(wpK)竟然是真的有挂(透视)辅助软件(有挂教程)一、wpk官网下载...
透视数据!约局吧辅助器,红龙p... 透视数据!约局吧辅助器,红龙poker辅助,介绍教程(有挂教程)约局吧辅助器辅助器中分为三种模型:约...
透视辅助器!wepoker透视... 透视辅助器!wepoker透视脚本苹果版,(wepoker)本来是真的有挂(透视)辅助分析器(有挂细...
透视辅助!德普之星透视辅助软件... 透视辅助!德普之星透视辅助软件激活码, (德普)本来有挂(透视)透视辅助软件激活码(有挂解密);1、...
透视辅助!wpk透视是真的假的... 透视辅助!wpk透视是真的假的,(wpK)好像真的有挂(透视)免费辅助(有挂详情);1)wpk透视是...
透视底牌!wepoker高级辅... 透视底牌!wepoker高级辅助,(WEPOKER)果然是有挂(透视)买脚本靠谱(有挂攻略)1、让任...
透视有挂!佛手在线大菠萝为什么... 透视有挂!佛手在线大菠萝为什么都输,佛手大菠萝辅助,揭秘教程(有挂详情);1)佛手在线大菠萝为什么都...
透视辅助!wpk辅助哪里买,(... 透视辅助!wpk辅助哪里买,(wpK)原来真的有挂(透视)透视插件(有挂内幕)1、下载好wpk辅助哪...
透视安装!德普辅助软件, (德... 透视安装!德普辅助软件, (德普)切实真的有挂(透视)私人局辅助免费(有挂细节);1、许多玩家不知道...