linux netLink检测usb插拔事件

2023-10-31

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
#include <fcntl.h>  

  
int main(void)  
{  
    struct sockaddr_nl client;  
    struct timeval tv;  
    int CppLive, rcvlen, ret;  
    fd_set fds;  
    int buffersize = 1024;  
    CppLive = socket(AF_NETLINK, SOCK_RAW, NETLINK_KOBJECT_UEVENT);  
    memset(&client, 0, sizeof(client));  
    client.nl_family = AF_NETLINK;  
    client.nl_pid = getpid();  
    client.nl_groups = 1; /* receive broadcast message*/  
    setsockopt(CppLive, SOL_SOCKET, SO_RCVBUF, &buffersize, sizeof(buffersize));  
    bind(CppLive, (struct sockaddr*)&client, sizeof(client));  
    while (1) {  
        char buf[UEVENT_BUFFER_SIZE] = { 0 };  
        FD_ZERO(&fds);  
        FD_SET(CppLive, &fds);  
        tv.tv_sec = 0;  
        tv.tv_usec = 100 * 1000;  
        ret = select(CppLive + 1, &fds, NULL, NULL, &tv);  
        if(ret < 0)  
            continue;  
        if(!(ret > 0 && FD_ISSET(CppLive, &fds)))  
            continue;  
        /* receive data */  
        rcvlen = recv(CppLive, &buf, sizeof(buf), 0);  
        if (rcvlen > 0) {  
            printf("%s\n", buf);  
            /*You can do something here to make the program more perfect!!!*/  
        }  
    }  
    close(CppLive);  
    return 0;  
}  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux netLink检测usb插拔事件 的相关文章

  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 进程池、线程池、协程

    什么是池 保证计算机硬件安全的情况下最大限度利用计算机 降低了程序的运行效率 但保证了硬件的安全 受限于硬件的物理极限 硬件的发展跟不上软件的速度 迫不得已提出了池的概念 进程池 线程池 提交任务的方式 同步 提交任务之后 原地等待任务的返
  • 多线程 UDP传输速率 实验

    现阶段问题 丢包问题 丢包率达到50 但是ping的时候反应良好 1 分析UDP丢包的原因 1 现象是每隔一个包丢失一个 所以考虑是否是缓冲区的问题 答 用不同数据包大小10 100 500 1500发现都是收一个丢一个 说明缓冲区大小并不
  • android 手机内存64实际不到,为什么你的手机内存总是达不到64G?丢失的内存去哪了?详细解读...

    近些年手机各项参数快速发展 除了屏幕 处理器 相机等主要零部件性能提升的同时 我们手机的内存也是越来越大 从最刚开始的2GB 到4G 8G 16与32G 再到现在标配64G起步 手机软件生态越来越完善 现在64G的手机也变得捉襟见肘 但是当
  • Linux man 命令详解

    man 命令 Linux man 命令用于显示 Linux 操作系统中的手册页 manual page 它提供了对 Linux 操作系统中各种命令 函数 库等的详细说明 man 命令有许多参数 参数介绍 下面简要介绍一下主要参数的功能 f
  • PyTorch自制数据集

    PyTorch加载数据主要分为两类 只有图片的数据集以及含有csv保存标签的数据集 只有图片的数据集又分为两类 标签在文件夹上和标签在图片名上 学习地址 1 标签在文件夹上 此情况下导入数据集 只需要调用PyTorch中的ImageFold
  • c/c++ 编程软件(IDE)推荐

    声明 本文软件推荐是为初学编程萌新推荐 以帮助新手快速搭建c c 开发环境 掌握语法 推荐原则并不适用与生产领域 另 萌新直接推荐小熊猫C 下载 英语不好可使用小龙dev 小龙 Dev C 中文主页 都是下载即用 优缺点文中均有介绍 0 首
  • 网页版权信息 日期格式

    1 格式 Copyright dates by author owner 例子 2022 baidu 2005 2015 Tencent All Rights Reserved Copyright 1996 2014 SINA Corpor
  • unity3D 音效的设置 音效的开关 制作声音的开关按钮

    使物体图 如图所示 设置界面如下 每一个 列表设置如下 sudio 的设置如下图 Background 的设置如下图 Checkmark的设置如下图 Text 的设置如下图 代码部分 引用是设置 如图所示 音效的开关的设计代码 Game M
  • R语言期末考试复习题第一天整理内容(自己整理+参考博主:紧到长不胖 )请多关注 紧到长不胖 ,每天有惊喜!

    R语言期末考试复习题第一天整理内容 期末考试例题 1 写出函数来计算15 21 39 45 17的和 分别用for循环和while循环 s c 15 21 39 45 17 sum s he 0 for i in 1 length s he
  • python again_收藏!最全从Python小白到大牛,要走的路这里都有(初级篇)

    收藏 长文 从Python小白到大牛 要走的路这里都有面向项目的学习是学习编码的最佳方法 Python是当今最需求的语言 为了帮助您学习它 以下是一些您可以探索的最重要的Python项目 Python游戏Python图像编程CIFAR10在
  • 周鸿祎:什么是好的用户体验?

    说今天是一个体验为王的时代 一点也不过分 做大众消费品的人可能已经感觉到 今天消费者的话语权越来越强 如果你的产品做得好 不久就会口口相传 如果你的产品做得烂 不久就会骂声一片 所有这一切在过去是不可想象的 但今天 每个人都可以发布信息 每
  • hadoop任务执行时,报错

    2020 11 06 03 42 43 205 ERROR org apache hadoop yarn server resourcemanager scheduler SchedulerApplicationAttempt Error
  • Collectors.summing唯独没有BigDecimal的求和方法

    最近在做订单相关的模块 有个订单列表接口 需要对订单金额进行求和 每次都得遍历list 然后用BigDecimal add 方法取求和 感觉很麻烦 想到之前有用到java8的stream collect的Collectors summing
  • 一个例子搞懂 tabelu的上下文筛选器

    示例 1 将维度筛选器转换为上下文筛选器 本示例以及以下示例使用 Tableau Desktop 附带的 Sample Superstore 数据源 在此示例中 视图解决以下问题 按总销售额计 纽约市位居前 10 名的客户有哪些 视图包含两
  • Mono和MonoDevelop源码编译安装

    Mono和MonoDevelop源码编译安装 之所以用源码编译的方式安装mono和monodevelop 是因为通过yum安装的mono不是最新版本 而且monodevelop不能建 asp net MVC3的工程 而且通过源码安装 可以进
  • 世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换及三维空间的刚体运动

    基本概念 https blog csdn net sunshine zoe article details 73457686 世界坐标系到相机坐标系下的变换 https www jianshu com p 64b4c887c439 通过两个
  • jquery中的伪数组和each和map静态方法区别,以及其他的一些静态方法

    伪数组 1 必须要有length属性 2 如果这个length的属性值是0 那么这个对象有没有元素无所谓 3 如果这个length的属性值不为0 那么这个对象一定头下标为 length 1 的属性值 列如 伪装组 var obj lengt
  • 公有链、联盟链、私有链区别

    1 公有链 公有链是世界上任何人都可以访问读取的 任何人都可以发送交易并且如果交易有效的话可以将之包括到区块中的 以及任何人都能够参与与其共识过程的区块 优点 所有交易数据公开 透明 无法篡改 缺点 低吞吐量 TPS 交易速度慢 2 联盟链
  • java橙色风格小说精品屋小说网站源码

    没有搭建教程 懂的自行下载研究 文件 590m com f 25127180 486121419 fbf84f 访问密码 551685 安装环境 宝塔面板 tomcat8 nginx1 17 mysql5 6 不知道最高支持到多少 打开服务
  • linux netLink检测usb插拔事件

    include