POSIX: Отличие файлов от директорий
#1
А может быть кто-то знает, как на POSIX-совместимых операционных системах (ну там BSD, Linux, macOS) происходит различение между файлами и директориями? На Windows директория это файл с атрибутом D.

Я просто пишу один мануал, и там есть вот такое предложение:

Цитата:Directory names can also be referred as file names; directories are nothing more than files with the D attribute.

У меня ощущение, что сказанное будет верно только для Windows, в то время как мануал таргетирован на разные ОС.
Ответ
#2
Директория — это такой файл без контента, на который ссылается другой файл (в том числе директория) при формировании "пути" (иерархия).
То есть директория занимает столько же места метаданных, сколько и пустой текстовый файл.

Вообще, пустая единица места (файл, директория, симлинк, хардлинк) на физической (не виртуальной как devfs, procfs или tmpfs) файловой системе занимает ноль байт данных, но не менее одного сектора (его размер зависит от логического/физического размера сектора диска) метаданных (в зависимости от количества атрибутов, поддерживаемых файловой системой их может быть больше стандартных POSIX прав).
Цитата:Directory names can also be referred as file names;
Эта часть утверждения верна для всех файловых систем в UNIX-like, потому что это даёт формирование пути — файл ссылается на директорию, "в которой лежит" (хотя его физическое расположение на диске никак не привязано).
Цитата:directories are nothing more than files with the D attribute.
Эта часть утверждения тоже верна для POSIX-совместимых файловых систем, но реализация немного отличается из-за другой схемы доступа/прав.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
#3
Понял, спасибо. Значит можно так оставить.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)