Не удается открыть каталог sys/bus/pci/device/
Я пытаюсь прочитать файл ресурсов для моего устройства и 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.
1 ответ
Вы пытаетесь открыть относительный путь (который не существует):
sys/bus/pci/devices/%04x:%02x:%02x.%d/resource0
вместо абсолютного:
/sys/bus/pci/devices/%04x:%02x:%02x.%d/resource0