婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux如何使用libudev獲取USB設(shè)備VID及PID

Linux如何使用libudev獲取USB設(shè)備VID及PID

熱門標(biāo)簽:江蘇自動外呼系統(tǒng)一般多少錢 信貸電銷機器人系統(tǒng) 400 電話 申請費用 鸚鵡螺號航海地圖標(biāo)注時間 山東電信外呼系統(tǒng)靠譜嗎 ai電話機器人營銷 比較穩(wěn)定的外呼系統(tǒng) 長沙回撥外呼系統(tǒng) 云南云電銷機器人招商

在本文將使用libudev庫來訪問hidraw的設(shè)備。通過libudev庫,我們可以查詢設(shè)備的廠家ID(Vendor ID, VID),產(chǎn)品ID(Product ID, PID),序列號和設(shè)備字符串等而不需要打開設(shè)備。進一步,libudev可以告訴我們在/dev目錄下設(shè)備節(jié)點的具體位置路徑,為應(yīng)用程序提供一種具有足夠魯棒性而又和系統(tǒng)廠家獨立的訪問設(shè)備的方式。使用libudev庫,需要包含libudev.h頭文件,并且在編譯時加上-ludev告訴編譯器去鏈接udev庫。

將列出當(dāng)前連接在系統(tǒng)中的所有hidraw設(shè)備,并且輸出它們的設(shè)備節(jié)點路徑、生產(chǎn)商、序列號等信息。

為了獲取這些信息,需要創(chuàng)建一個udev_enumerate對象,其中“hidraw”字符串作為過濾條件,

libudev將返回所有匹配這個過濾字符串的udev_device對象。

這個列子的步驟如下:

1、 初始化庫,獲取一個struct udev句柄

2、枚舉設(shè)備

3、對找到的匹配設(shè)備輸出它的節(jié)點名稱,找到實際USB設(shè)備的起始節(jié)點,打印出USB設(shè)備的IDs和序列號等,最后解引用設(shè)備對象

4、解引用枚舉對象

5、解引用udev對象

具體代碼如下:

#include <libudev.h>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <unistd.h>

int main (void)
{
  struct udev *udev;
  struct udev_enumerate *enumerate;
  struct udev_list_entry *devices, *dev_list_entry;
  struct udev_device *dev;

  /* Create the udev object */
  udev = udev_new();
  if (!udev) {
    printf("Can't create udev\n");
    exit(1);
  }

  /* Create a list of the devices in the 'hidraw' subsystem. */
  enumerate = udev_enumerate_new(udev);
  udev_enumerate_add_match_subsystem(enumerate, "hidraw");
  udev_enumerate_scan_devices(enumerate);
  devices = udev_enumerate_get_list_entry(enumerate);
  /* For each item enumerated, print out its information.
    udev_list_entry_foreach is a macro which expands to
    a loop. The loop will be executed for each member in
    devices, setting dev_list_entry to a list entry
    which contains the device's path in /sys. */
  udev_list_entry_foreach(dev_list_entry, devices) {
    const char *path;

    /* Get the filename of the /sys entry for the device
      and create a udev_device object (dev) representing it */
    path = udev_list_entry_get_name(dev_list_entry);
    dev = udev_device_new_from_syspath(udev, path);

    /* usb_device_get_devnode() returns the path to the device node
      itself in /dev. */
    printf("Device Node Path: %s\n", udev_device_get_devnode(dev));

    /* The device pointed to by dev contains information about
      the hidraw device. In order to get information about the
      USB device, get the parent device with the
      subsystem/devtype pair of "usb"/"usb_device". This will
      be several levels up the tree, but the function will find
      it.*/
    dev = udev_device_get_parent_with_subsystem_devtype(
         dev,
         "usb",
         "usb_device");
    if (!dev) {
      printf("Unable to find parent usb device.");
      exit(1);
    }

    /* From here, we can call get_sysattr_value() for each file
      in the device's /sys entry. The strings passed into these
      functions (idProduct, idVendor, serial, etc.) correspond
      directly to the files in the directory which represents
      the USB device. Note that USB strings are Unicode, UCS2
      encoded, but the strings returned from
      udev_device_get_sysattr_value() are UTF-8 encoded. */
    printf(" VID/PID: %s %s\n",
        udev_device_get_sysattr_value(dev,"idVendor"),
        udev_device_get_sysattr_value(dev, "idProduct"));
    printf(" %s\n %s\n",
        udev_device_get_sysattr_value(dev,"manufacturer"),
        udev_device_get_sysattr_value(dev,"product"));
    printf(" serial: %s\n",
        udev_device_get_sysattr_value(dev, "serial"));
    udev_device_unref(dev);
  }
  /* Free the enumerator object */
  udev_enumerate_unref(enumerate);

  udev_unref(udev);

  return 0;
}

編譯程序:

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:衡陽 運城 烏海 澳門 嘉興 齊齊哈爾 拉薩 亳州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux如何使用libudev獲取USB設(shè)備VID及PID》,本文關(guān)鍵詞  Linux,如何,使用,libudev,獲取,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux如何使用libudev獲取USB設(shè)備VID及PID》相關(guān)的同類信息!
  • 本頁收集關(guān)于Linux如何使用libudev獲取USB設(shè)備VID及PID的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲综合男人的天堂| 欧美日韩成人激情| 日韩欧美卡一卡二| 国产盗摄女厕一区二区三区| 一区二区三区毛片| 国产亚洲1区2区3区| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲综合一区二区| 国产精品视频观看| 久久无码av三级| 日韩无一区二区| 欧美日韩高清不卡| 欧美丝袜自拍制服另类| 91一区一区三区| 国产成人精品综合在线观看 | 男女激情视频一区| 亚洲宅男天堂在线观看无病毒| 国产精品午夜电影| 久久久www免费人成精品| 精品国产免费人成在线观看| 欧美成人精品二区三区99精品| 欧美一区二区黄| 欧美一区二区在线免费播放| 欧美精三区欧美精三区| 制服丝袜在线91| 欧美成人一区二区三区在线观看| 日韩欧美一区二区久久婷婷| 欧美精品久久久久久久久老牛影院| 日本高清成人免费播放| 白白色 亚洲乱淫| eeuss鲁一区二区三区| jiyouzz国产精品久久| 国产成人在线视频免费播放| 国产一区二区在线观看免费| 国产精品一区二区在线播放| 丰满亚洲少妇av| av电影在线观看一区| 99久免费精品视频在线观看| 欧美影片第一页| 91美女视频网站| 国产成人在线色| 99re热这里只有精品视频| 色av成人天堂桃色av| 4438成人网| 精品久久久久久亚洲综合网| 国产欧美日韩三级| 亚洲国产精品久久人人爱 | 欧美日韩国产高清一区二区 | 成人永久aaa| 色域天天综合网| 美女一区二区三区在线观看| 色综合色狠狠天天综合色| 午夜精品一区在线观看| 欧美精品第一页| 亚洲成人av免费| 国产酒店精品激情| 成人性生交大片免费看中文| 亚洲一区二区三区在线| 成人国产精品免费网站| 奇米影视一区二区三区| 91精品国产高清一区二区三区蜜臀| 99视频热这里只有精品免费| 欧美日韩黄色影视| 九色|91porny| 色婷婷精品大在线视频| 国产 欧美在线| 99久久777色| 日韩三级.com| 夜夜嗨av一区二区三区中文字幕| 麻豆国产欧美一区二区三区| 91麻豆免费看片| 久久免费偷拍视频| 欧美亚洲国产一区在线观看网站| 国产精品18久久久久久久久久久久| 国产亚洲婷婷免费| 亚洲国产日韩av| 韩国v欧美v亚洲v日本v| 99re成人精品视频| 欧美日韩国产另类不卡| 最好看的中文字幕久久| 国产乱码精品一区二区三区忘忧草 | 久久99精品网久久| 色噜噜狠狠一区二区三区果冻| 日韩精品一区二区三区中文不卡| 亚洲图片激情小说| 精品久久免费看| 国产精品第四页| 亚州成人在线电影| 亚洲精品乱码久久久久| 欧美zozo另类异族| 一区二区欧美在线观看| 国产乱理伦片在线观看夜一区| 久久久久9999亚洲精品| 亚洲自拍偷拍综合| 亚洲永久免费视频| 亚洲超碰精品一区二区| 国产免费成人在线视频| 亚洲人成小说网站色在线| 在线观看免费亚洲| 97se亚洲国产综合自在线观| 高清成人在线观看| 欧美韩日一区二区三区| 久久久亚洲精品石原莉奈| 国产精品456露脸| 欧美伦理影视网| 亚洲国产一区二区在线播放| 99精品1区2区| 亚洲国产经典视频| 国产91精品免费| 国产精品毛片a∨一区二区三区| 成人激情动漫在线观看| 国产视频一区在线观看| 精品电影一区二区| 国产老肥熟一区二区三区| 日本成人在线视频网站| 美女视频一区二区| 精品福利在线导航| 青青草国产成人99久久| 亚洲蜜臀av乱码久久精品| 激情综合网激情| 欧美日韩国产三级| 日韩在线一二三区| 日韩一区二区三区视频| 国产自产2019最新不卡| 久久五月婷婷丁香社区| 夜夜精品视频一区二区| 成人永久免费视频| 国产乱一区二区| 色狠狠色噜噜噜综合网| 成人综合在线网站| 久久久99免费| 91在线云播放| 亚洲国产精品一区二区尤物区| 91精品综合久久久久久| 国产精品性做久久久久久| 成人成人成人在线视频| 欧美成人综合网站| 亚洲电影第三页| 久久久久久麻豆| 波多野结衣一区二区三区| 欧洲视频一区二区| 欧美精品高清视频| 狠狠色丁香久久婷婷综合_中| 国产精品丝袜一区| 欧美午夜宅男影院| 国产一区久久久| 亚洲小说欧美激情另类| 久久毛片高清国产| 亚洲一区二区五区| 欧美人xxxx| hitomi一区二区三区精品| 91视频在线观看免费| 欧美日韩综合不卡| 极品瑜伽女神91| 亚洲电影在线免费观看| 中文字幕欧美国产| 日韩视频一区在线观看| 色999日韩国产欧美一区二区| 国产曰批免费观看久久久| 性做久久久久久免费观看| 亚洲欧洲成人自拍| 日韩精品专区在线| 日韩精品一二三四| 亚洲国产成人午夜在线一区| 日本精品裸体写真集在线观看| 亚洲影院免费观看| 欧美男女性生活在线直播观看 | 国产精品欧美一区喷水| 欧美高清激情brazzers| 99久久夜色精品国产网站| 韩国一区二区在线观看| 亚洲欧洲av色图| 99久久精品99国产精品| 九九精品一区二区| 久久久精品人体av艺术| 亚洲高清在线精品| 久久成人18免费观看| 久久久亚洲精品石原莉奈| 色婷婷av一区二区三区之一色屋| 国产精品一区二区在线播放 | 免费黄网站欧美| 日韩精品亚洲一区二区三区免费| 亚洲综合999| 亚洲另类在线视频| 亚洲色图制服丝袜| 一区二区三区欧美| 欧美日韩在线免费视频| 在线观看免费成人| 高清不卡在线观看| 国产精品一区二区在线播放 | 色噜噜久久综合| 欧洲av在线精品| 欧美性色综合网| 精品视频在线免费看| 国产福利一区二区三区在线视频| aa级大片欧美| 国产午夜精品一区二区三区四区| 久久久电影一区二区三区| 欧美婷婷六月丁香综合色| 一本一道久久a久久精品综合蜜臀|