我正在尝试读取设备的资源文件并mmap读取设备寄存器,但当我尝试打开文件位置时,错误提示:没有此类文件或目录。我已使用chmod 666更改了文件的权限。我用来打开文件的代码:

sprintf(filePath , "sys/bus/pci/devices/%04x:%02x:%02x.%d/resource0",segment,bus,device,function)

fileHandle = open(filePath , O_RDONLY);

if (fileHandle < 0)
{
    perror("ERRRO : ");
}

文件存在,并且我能够使用CAT工具读取它。

最佳答案

您正在尝试打开相对路径(不存在):

sys/bus/pci/devices/%04x:%02x:%02x.%d/resource0

而不是绝对的:
/sys/bus/pci/devices/%04x:%02x:%02x.%d/resource0

关于c - 无法打开sys/bus/pci/device/目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23646990/

10-11 21:16