【问题标题】:Unable to open /sys/bus/pci/devices/0000:00:01.0/resource无法打开 /sys/bus/pci/devices/0000:00:01.0/resource
【发布时间】:2015-12-02 13:31:49
【问题描述】:

我正在尝试用 C 代码打开 PCI 设备的绝对路径

 fd = open("/sys/bus/pci/devices/0000:00:01.0/resource", O_RDWR);

 if (fd < 0) {
            printf("Not found %s\n", path);
            return -1;
    }

但它给了我一个错误提示 Not found /sys/bus/pci/devices/0000:00:01.0/resource

谁能指出我在这里做什么?

【问题讨论】:

  • 那么,您的系统上是否存在该路径?你认为它是什么设备?
  • 是的,我检查过了,它在我的系统上。
  • 你能告诉我们ls -l /sys/bus/pci/devices/0000:00:01.0/resource 的输出吗?另外,也可以使用perror 而不是printf 来打印errno 文本,因为它会为您提供更详细的失败原因。
  • -r--r--r-- 1 root root 4096 Jan 1 00:03 /sys/bus/pci/devices/0000:00:01.0/resource

标签: c linux linux-device-driver pci


【解决方案1】:

您正试图打开读/写路径,但它只能读取(这就是ls -l 输出中的-r--r--r-- 的含义)。您需要将O_RDWR 更改为O_RDONLY

【讨论】:

  • 啊,我明白了,但我可以让它 chmod 777 /sys/bus/pci/devices/0000:00:01.0/resource 吗?
  • 欢迎您尝试。我不知道设备是什么,也不知道它是如何工作的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
  • 2010-11-24
  • 2018-12-20
相关资源
最近更新 更多