c - USB Linux API : call ioctl requests from user space app

标签 c linux usb driver ioctl

我想创建负责获取/设置一些 USB 设置的 Linux 应用程序,尤其是负责以下设置的设置:

  • USB 端口

  • USB 主机 Controller 和 USB 驱动

  • USB 设备

我遵循了 linux api 文档:https://www.kernel.org/doc/html/v4.14/driver-api/usb/usb.html我发现可以通过ioctl来完成 我找到了一个 ioctl 请求列表,例如 USBDEVFS_GETDRIVER。

我发现如果我想要第一个小测试它可以是这样的:

struct usbdevfs_getdriver usbdriver;
int fd = open("device_file_name", O_RDWR);
ioctl(fd, USBDEVFS_GETDRIVER, (struct usbdevfs_getdriver*) &usbdriver);

这是正确的方法吗?我代码第二行的 device_file_name 应该是什么?

最佳答案

字符串 device_file_name 应该替换为 USB 设备节点文件的路径。您提到的文档解释了此类文件的路径类似于 /dev/bus/usb/BBB/DDD

您应该检查 openioctl 返回的值以查看操作是否成功。

关于c - USB Linux API : call ioctl requests from user space app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56950646/

相关文章:

ruby - 使用 libusb 和 Ruby 从 USB 设备(Waterrower S4 Monitor)读取数据

c - 尝试写入使用 cudaMalloc3D 分配的二维数组时出现“非法内存访问”

c - Emacs - 有关 hide-ifdef-mode 的问题

c - 如何在 C 中缩写全名?

c中计算字符串中不同符号的个数

linux - 查找多线程应用程序的进程号

linux - 如何确定jetty中jetty.base和jetty.home的运行顺序?

Android设备USB调试

linux - 在 bash 脚本上做完整的工作流

bluetooth - CC2540 USB - 使可发现 : Not ready to perform task