Байт Смещения для трубы / FIFO

Почему байтовые смещения для трубы / FIFO, хранящиеся в inode, а не в таблице файлов, например, для обычных файлов?

Я прочитал эту строку на странице 113 «Проекта операционной системы Unix» (1986) Мориса Баха.

Сохранение байтовых смещений в inode позволяет удобному доступу FIFO к данным канала и отличается от обычных файлов, где смещение поддерживается в таблице файлов.

  • Что такое индексный дескриптор, определенный POSIX?
  • Нечетные кавычки Inode / Ram происходят в CentOS
  • Расположение inodes (ext)?
  • Количество файлов не совпадает с inodes
  • Что использует триллионы inodes на моем почти пустом сервере?
  • Где хранятся таблицы i-node?
  • Как хранятся большие каталоги (один индекс или много?)
  • Список всех файлов с тем же номером inode?
  • One Solution collect form web for “Байт Смещения для трубы / FIFO”

    Обратите внимание, что в этой книге описывается внутренняя система системы AT & T Unix, как и 30 лет назад. Вы не можете предположить, что в современных Unix и Unix-подобных системах все делается так же.

    В любом случае независимо от того, как трубы реализованы внутри, а для обычных файлов или других файлов для поиска смещение байтов – это то, что принадлежит описанию открытого файла (я полагаю, это то, что ваша книга вызывает запись в файловой таблице ). То есть, два процесса, открывающих один и тот же файл, будут иметь каждое собственное смещение внутри файла. Одно чтение процесса из файла не влияет на смещение другого процесса.

    Для труб все дескрипторы файлов всех процессов, открытых в канале, имеют одинаковое смещение. Или, другими словами, смещение относится к трубе. Поэтому имеет смысл хранить его в inode, а не дублировать его во всех описаниях открытых файлов.

    Linux и Unix - лучшая ОС в мире.