Может ли один inode иметь несколько файловых дескрипторов?

Да, один inode может иметь несколько файловых дескрипторов.

Короткий ответ

Что ответить на собеседовании

Да, один inode может иметь несколько файловых дескрипторов. В Unix-подобных системах inode — это структура данных, которая хранит информацию о файле, а файловый дескриптор — это целочисленный идентификатор, используемый процессом для доступа к открытому файлу.

Подробный разбор

Ответ с пояснениями

Да, один inode может иметь несколько файловых дескрипторов. В Unix-подобных системах inode — это структура данных, которая хранит информацию о файле, а файловый дескриптор — это целочисленный идентификатор, используемый процессом для доступа к открытому файлу.

Несколько файловых дескрипторов могут указывать на один и тот же inode, например, если один процесс открыл файл несколько раз, или если разные процессы открыли один и тот же файл. Кроме того, если файл имеет несколько жёстких ссылок (hard links), то все они указывают на один и тот же inode, и открытие файла по любой из ссылок создаст файловый дескриптор, связанный с этим inode.

Пример на C, показывающий, что два файловых дескриптора могут указывать на один и тот же inode:

#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>

int main() {
    int fd1 = open("file.txt", O_RDONLY);
    int fd2 = open("file.txt", O_RDONLY);

    struct stat stat1, stat2;
    fstat(fd1, &stat1);
    fstat(fd2, &stat2);

    printf("Inode fd1: %ld\n", (long)stat1.st_ino);
    printf("Inode fd2: %ld\n", (long)stat2.st_ino);

    close(fd1);
    close(fd2);
    return 0;
}

Вывод покажет одинаковый inode для обоих дескрипторов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее