распечатать содержимое файла с учетом его индекса

Я хочу реализовать функцию, аналогичную cat file. Моя функция будет mycat(inode).
Он примет в качестве входных данных индекс файла и распечатает содержимое файла.
Как этого добиться с помощью программы на C.


person pensee    schedule 13.12.2020    source источник
comment
Что вы пробовали?   -  person tango-1    schedule 13.12.2020
comment
что я мог придумать, так это - предположим, что это самый простой случай, когда файл находится в текущем каталоге. Итак, переберите все файлы в текущем каталоге, и если вы найдете тот, для которого соответствует индексный дескриптор, то все готово. Правильно ли это рассуждение? или лучший способ добиться того же?   -  person pensee    schedule 13.12.2020
comment
Если вы попытаетесь открыть свой файл с помощью open() или fopen(), вы можете узнать, присутствует этот файл или нет. После этого вы можете прочитать содержимое файла с помощью read() или fread(). Нет необходимости перебирать все файлы. См. open() и read().   -  person tango-1    schedule 13.12.2020
comment
Отвечает ли это на ваш вопрос? Открыть файл по inode   -  person Nate Eldredge    schedule 13.12.2020
comment
Короткий ответ заключается в том, что для этого требуются либо низкоуровневые системные хаки (и вы не сказали, какую систему вы используете), либо что-то вроде find для обхода всей файловой системы, пока вы не найдете путь с желаемым номером инода.   -  person Nate Eldredge    schedule 13.12.2020
comment
@tango-1 open и fopen принимает имя пути в качестве параметра, а не индексный дескриптор, как я вижу на справочных страницах. Так как же можно использовать эти функции? Просто чтобы внести больше ясности в этот вопрос, я пишу программу на C для Linux   -  person pensee    schedule 14.12.2020
comment
Итак, я понимаю, что inode будет структурой, заданной в C. Но я не могу найти, что это за структура   -  person pensee    schedule 14.12.2020