Какой смысл "я" в S_IRUSR

S_IRUSR - это макрокоманда в sys/stat.h из posix. это означает бит разрешения на доступ пользователя.

префикс S_ может означать 'статус' RUSR может быть прочитано о пользователе. но какой смысл "я"?

Ответ 1

Именование историческое... восходит к самым ранним дням UNIX. "S" - для STAT, "I" для INODE (термин, который действительно не используется в POSIX непосредственно вне Rationale), "R" для READ и "USR" для USER.

Inodes действительно получают несколько упоминаний, а структура stat также включает в себя "st_ino", который стандарт описывает как "Серийный номер файла". Во многих реализациях POSIX inode представляет собой структуру данных, содержащую все метаданные для файла (большая часть которых является тем, что читается вызовом stat()).

(Из Википедии:) Причина их обозначения как узлов "i" неизвестна. Когда его спросили, пионер Unix Деннис Ритчи ответил:

По правде говоря, я тоже не знаю. Это был просто термин, который мы начали использовать. "Индекс" - мое лучшее предположение, из-за слегка необычного файла структура системы, которая хранит информацию доступа к файлам как плоскую массив на диске, со всей информацией о иерархическом каталоге живущих в стороне от этого. Таким образом, i-номер является индексом в этом массиве, i- node - это выбранный элемент массива.

(Обозначение "i-" использовалось в руководстве по первому изданию, его дефис постепенно снижался.)