Иноды в Linux - что это такое и как они работают
Inode (Index Node) - это структура данных в Linux-системе, которая содержит информацию о файле или директории. В каждой файловой системе Linux-системы есть таблица индексных узлов, которая содержит записи inode для каждого файла или каталога на этой файловой системе.
Каждый inode имеет уникальный номер индексного узла, который идентифицирует его в файловой системе. Этот номер inode часто используется в командах Linux, таких как ls, для отображения информации о файлах и каталогах.
Структура inode содержит следующую информацию о файле или каталоге:
- Режим доступа к файлу (права доступа)
- Владелец файла
- Группа файла
- Количество жестких ссылок на файл (когда файл имеет более одного имени)
- Размер файла
- Даты создания, изменения и доступа к файлу
- Указатели на блоки данных файла
Пример кода, который позволяет получить информацию об inode файла:
c
#include
#include
#include
#include
int main() {
struct stat file_stat;
char file_name[] = "example.txt";
// Получение информации об inode файла
if (stat(file_name, &file_stat) == -1) {
perror("Ошибка при получении информации об inode файла");
return -1;
}
// Вывод информации об inode файла
printf("Inode номер: %lu\n", file_stat.st_ino);
printf("Размер файла: %ld байт\n", file_stat.st_size);
printf("Дата последнего изменения: %s", ctime(&file_stat.st_mtime));
return 0;
}
В этом примере используется функция stat из заголовочного файла sys/stat.h для получения информации об inode файла. Затем выводится номер inode, размер файла и дата последнего изменения.