这篇文章主要介绍了Linux如何使用libudev获取USB设备VID及PID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在本文将使用libudev库来访问hidraw的设备。通过libudev库,我们可以查询设备的厂家ID(Vendor ID, VID),产品ID(Product ID, PID),序列号和设备字符串等而不需要打开设备。进一步,libudev可以告诉我们在/dev目录下设备节点的具体位置路径,为应用程序提供一种具有足够鲁棒性而又和系统厂家独立的访问设备的方式。使用libudev库,需要包含libudev.h头文件,并且在编译时加上-ludev告诉编译器去链接udev库。

将列出当前连接在系统中的所有hidraw设备,并且输出它们的设备节点路径、生产商、序列号等信息。

为了获取这些信息,需要创建一个udev_enumerate对象,其中“hidraw”字符串作为过滤条件,

libudev将返回所有匹配这个过滤字符串的udev_device对象。

这个列子的步骤如下:

1、 初始化库,获取一个struct udev句柄

2、枚举设备

3、对找到的匹配设备输出它的节点名称,找到实际USB设备的起始节点,打印出USB设备的IDs和序列号等,最后解引用设备对象

4、解引用枚举对象

5、解引用udev对象

具体代码如下:

编译程序:

gcc -Wall -g -o udev_example udev_example.c -ludev

以上就是本文的全部内容,希望对大家的学习有所帮助

文章来源http://www.cncsto.com/article/102

内容来源于网络如有侵权请私信删除

linux c 获取usb vid,Linux如何使用libudev获取USB设备VID及PID相关推荐

  1. linux查看usb文件,linux lsusb查看USB信息

    linux lsusb查看USB信息 linux中lsusb用来显示系统中以及连接到系统的USB总线信息的工具,lsusb会显示驱动和内部连接到你系统的设备,包括PID和VID等,以及简单的设备描述. ...

  2. linux 从摄像头采集一帧 jpg,基于Video4Linux 的USB 摄像头图像采集实现.pdf

    基于 Video4Linux 的 USB 摄像头图像采集实现 戴小鼠 daily3 1 基于基于 Video4Linux 的的 USB 摄像头图像采集实现摄像头图像采集实现 Write by dail ...

  3. Linux USB 驱动开发实例(二)—— USB 鼠标驱动注解及测试

    参考2.6.14版本中的driver/usb/input/usbmouse.c.鼠标驱动可分为几个部分:驱动加载部分.probe部分.open部分.urb回调函数处理部分. 一.驱动加载部分 [cpp ...

  4. usb升级linux固件,Linux USB驱动(4)---CY68013固件加载驱动

    CY68013的固件可以保存在主机上,当其被USB总线识别出来之后,可以通过驱动程序动态的加载USB固件,Linux内核中已经提供了完善的机制来加载设备的固件. 将需要加载的固件存放到/lib/fir ...

  5. USB总线-Linux内核USB3.0设备控制器之dwc3 gadget驱动初始化过程分析(五)

    1.概述 USB设备控制器(UDC)驱动的框图如下图所示,由三部分组成.第一部分是UDC驱动核心层,在drivers/usb/gadget/udc/core.c文件中实现,该层是一个兼容层,将USB ...

  6. USB总线-Linux内核USB3.0设备控制器中断处理程序分析(九)

    1.概述 USB设备枚举.请求处理.数据交互都涉及USB设备控制器中断.当有事件发生时,USB设备控制器首先将事件信息通过DMA写入到事件缓冲区中,然后向CPU发出中断,随后CPU调用中断处理函数开始 ...

  7. Linux USB 驱动开发(三)—— 编写USB 驱动程序

    前面学习了USB驱动的一些基础概念与重要的数据结构,那么究竟如何编写一个USB 驱动程序呢?编写与一个USB设备驱动程序的方法和其他总线驱动方式类似,驱动程序把驱动程序对象注册到USB子系统中,稍后再 ...

  8. u盘linux需要多大内存,linux下获取硬盘、内存、U盘大小及使用大小

    /* * 获取硬盘大小;内存大小;usb大小 */ #ifndef SYSINFOGET_H #define SYSINFOGET_H #include //磁盘信息 #include #includ ...

  9. Linux复位usb hub,linux usb hub初始化-steven

    分类:LINUX 谨以此文纪念过往的岁月 一.前言 在上文中讲述了usb子系统的初始化,在该文中来看usb hub的驱动.不过在这里需要说明一点,host controller和usb hub是不同的 ...

  10. USB总线-Linux内核USB3.0设备控制器复合设备之USB gadget configfs分析(七)

    1.简介 configfs是基于ram的文件系统,与sysfs的功能有所不同.sysfs是基于文件系统的kernel对象视图,虽然某些属性允许用户读写,但对象是在kernel中创建.注册.销毁,由ke ...

最新文章

  1. 数据挖掘学习笔记--决策树C4.5
  2. 猫版超级玛丽 附下载
  3. 招贤纳士|360WEB平台云平台部招人啦
  4. 如何基于protobuf实现一个极简版的RPC(转载)
  5. 解决安装vissim4.3一直显示Installing Plug-Ins,please wait
  6. python 成语库_Python“Every Other Element”成语
  7. 头脑王者答题神器,开发思路
  8. C++几个常用的排序
  9. Enovia文件协作服务器安装,Enovia用户操作手册.doc
  10. unity 3d原创制作射击游戏(全完整版+安卓apk编译)
  11. HTML 编码规范之布尔型属性
  12. 《石油地球物理测井——在井下看油气藏》 知识整理
  13. JavaScript原生实现广告栏滑动
  14. norton disk doctor
  15. 【计算机视觉与深度学习 北京邮电大学 鲁鹏 视频笔记】1. 线性分类器
  16. ArcGIS中ArcMap分割栅格Split Raster工具没有结果的解决
  17. 新家急需入住怎么快速除甲醛,屋里去甲醛最快的方法
  18. 年入200万的华人程序员,过了30岁就成傻逼了?
  19. 播放流媒体常用工具和格式
  20. 他是国家的儿子 如不再优秀请原谅他

热门文章

  1. 轻量化html编辑器,建站“一气呵成” 推荐7大免费网页编辑器
  2. 可以观看CCTV-5高清直播的网站-天天直播
  3. MMDetection学习教程(一)
  4. linux重做系统分区,Linux系统分区表恢复的教程
  5. 提取多个文件夹图片到一个文件夹
  6. MTK6577+Android GPIO
  7. data: function () { return {}} ——你不应该在一个子组件内部改变 prop
  8. oracle 创建新的表空间,oracle创建表空间新建新用户并受权
  9. Python3对股票数据进行分析
  10. 老电脑可以升级win10系统吗