当前位置: 首页 > wzjs >正文

北京建设监管部门网站合肥百度竞价推广代理公司

北京建设监管部门网站,合肥百度竞价推广代理公司,自己做传奇网站,全景效果图网站前言 本人的国产化桌面系统项目需要对接入Linux系统的USB设备进行事件及更详细的信息管理,libusb库是不够的,需要使用udev库,比如我的项目需要区分摄像头/位图设备、存储设备、鼠标键盘设备等的插拔事件,此时需要调用udev库&#…

前言

        本人的国产化桌面系统项目需要对接入Linux系统的USB设备进行事件及更详细的信息管理,libusb库是不够的,需要使用udev库,比如我的项目需要区分摄像头/位图设备、存储设备、鼠标键盘设备等的插拔事件,此时需要调用udev库,下文主要讲解C/C++开发怎么引用udev库。

功能讲解

1、apt方式下载库

sudo apt install libudev-dev
//usbudev.cpp
#include <iostream>
#include <libudev.h>int main() {struct udev *udev;struct udev_monitor *mon;int fd;// 创建 udev 上下文和监视器udev = udev_new();if (!udev) {std::cerr << "Failed to create udev context"<< std::endl;return -1;}//创建一个udev监控器mon = udev_monitor_new_from_netlink(udev, "udev");if(!mon){std::cerr << "udev_monitor_new_from_netlink fail!"<< std::endl;udev_unref(udev);return -1;}// 指定想要枚举的设备类型,udev_monitor_filter_add_match_subsystem_devtype(mon, "usb", nullptr);//允许udev监控器接收事件udev_monitor_enable_receiving(mon);// 获取监听文件描述符并进入事件处理循环fd = udev_monitor_get_fd(mon);std::cout << "Monitoring USB devices. Press Ctrl+C to exit." << std::endl;while (true) {fd_set fds;FD_ZERO(&fds);FD_SET(fd, &fds);// 等待文件描述符就绪if (select(fd + 1, &fds, NULL, NULL, NULL) > 0) {//接收设备事件struct udev_device *dev = udev_monitor_receive_device(mon);if (dev) {const char *action = udev_device_get_action(dev);const char *devnode = udev_device_get_devnode(dev);// Get bus and device numbersconst char* busnum = udev_device_get_property_value(dev, "BUSNUM");//std::cout << "busnum: [" << busnum << "]" << std::endl;const char* devnum = udev_device_get_property_value(dev, "DEVNUM");//std::cout << "devnum: [" << devnum << "]" << std::endl;if (action && devnode) {std::cout << "Action: " << action << ", Device Node: " << devnode << "  busnum: " << busnum << ", devnum: " << devnum  << std::endl;//std::cout << "busnum: [" << busnum << "]" << std::endl;//std::cout << "devnum: [" << devnum << "]" << std::endl;}udev_device_unref(dev);}}}udev_monitor_unref(mon);udev_unref(udev);return 0;
}

编译命令加上-ludev库:

g++ usbudev.cpp -ousbudev -ludev

2、离线方式

在通过apt安装好lidudev库是设备上拷贝以下两个文件出来,放到离线设备的同路径下:

/usr/include/libudev.h
/usr/lib/x86_64-linux-gnu/libudev.so

        安装完成之后,上面usbudev.cpp的代码也编译通过。另外本篇提供了统信UOS系统的libudev的资源,需要离线开发及部署的朋友可以去下载。

http://www.dtcms.com/wzjs/412153.html

相关文章:

  • wordpress 对象存储插件广东seo推广哪里好
  • 做专属淘客网站搜索引擎优化的根本目的
  • 做网站 使用权 所有权刷移动端seo软件
  • 网站建设文档模板搜索引擎yandex入口
  • 网站建设如何开票seo优化网页
  • 正规制作网站公司网站关键词排名批量查询
  • 沈阳网站关键词优化排名seo排名软件免费
  • 网站建设引入谷歌地图seo推广优化外包价格
  • 做网站 天津网站查询ip地址查询
  • 深圳网站(建设信科网络)郑州网站seo技术
  • 百姓网站制作推广运营怎么做
  • 网站建设中怎么插入视频免费入驻的卖货平台有哪些
  • 秦皇岛市网站制作公司视频优化是什么意思
  • 一个网站价格网络营销的特点不包括
  • 做暧暧网站免费轻松seo优化排名 快排
  • 有那个网站可以做任务赚钱镇江seo
  • 做油漆稀料用哪个网站怎么自己建网站
  • 建设公司网站的原则百度手机助手下载正版
  • wordpress 添加导航栏pc网站优化排名软件
  • 外贸手机网站建设武汉百度推广代运营
  • 浙江台州网络设计网站网站案例
  • 岳阳seo招聘什么是网站推广优化
  • itc会议系统哈尔滨seo关键词
  • 厦门做点击付费网站幽默软文广告经典案例
  • 有哪些官网做的比较好的网站百度竞价广告代理
  • 猎头公司工作怎么样seo在线培训机构
  • 地方网站系统武汉大学人民医院怎么样
  • 网店代运营网站广州百度关键词推广
  • 商城网站发展计划广告资源对接平台
  • 免费域名解析网站建设百度站长平台工具