Существует ли ограничение количества жестких ссылок для одного файла? Это указано где-нибудь? Каковы безопасные ограничения для Linux? А что за другие системы POSIX?
источник
Существует ли ограничение количества жестких ссылок для одного файла? Это указано где-нибудь? Каковы безопасные ограничения для Linux? А что за другие системы POSIX?
Posix требует, чтобы операционная система понимала концепцию жестких ссылок, но не то, чтобы жесткие ссылки могли фактически использоваться в любых конкретных обстоятельствах. Вы можете узнать, сколько жестких ссылок разрешено в определенном месте (это может варьироваться в зависимости от типа файловой системы), позвонив . Предельного минимального ( ) является 8, но это довольно бессмысленно , как может сообщить много других ошибок в любом случае (доступ запрещен, диск переполнен, ...).pathconf(filename, _PC_LINK_MAX)
_POSIX_LINK_MAX
link()
В stat
структуре хранит ссылку рассчитывать в поле типа nlink_t
, так что тип этого поля дает верхний предел на вашей системе. Но есть хороший шанс, что вы никогда не сможете достичь этого: обычно nlink_t
во многих файловых системах 32-разрядные, но только 16-разрядные (быстрый поиск в исходном коде Linux показывает, что ext [234], NTFS, UFS и XFS использует 16-битное число ссылок в структурах данных ядра).
Это зависит от файловой системы.
ext2 / 3/4 ограничение составляет 65 тыс. ссылок
ext4 исходная строка 643,
struct ext4_inode
->__le16 i_links_count
источник
Рассматривая формат диска структуры ext3 inode в исходных текстах ядра Linux (* include / linux / ext3_fs.h *), в котором количество ссылок указано как 16-битное число
Я предполагаю, что это означает, что файловая система ext3 может иметь до 65535 ссылок.
Я не проверял значения для других файловых систем.
источник