USB Linux API:从用户空间应用程序调用ioctl请求

时间:2019-07-09 10:34:53

标签: c linux usb driver ioctl

我想创建负责获取/设置某些usb设置的Linux应用,尤其是负责以下内容的设置:

  • USB端口

  • USB主机控制器和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应该是什么?

2 个答案:

答案 0 :(得分:0)

device_file_name:应该是USB挂载的文件。通常,它在/ mnt /下。 您可以使用命令dmesg。

答案 1 :(得分:0)

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

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