Posix exige que o sistema operacional entenda o conceito de hard links, mas não que hard links possam ser usados em qualquer circunstância particular. Você pode descobrir quantos hard links são permitidos em um determinado local (isso pode variar de acordo com o tipo de sistema de arquivos) chamando pathconf(filename, _PC_LINK_MAX)
. O limite mínimo ( _POSIX_LINK_MAX
) é 8, mas isso é bastante sem sentido como link()
pode relatar muitos outros erros de qualquer maneira (permissão negada, disco cheio,…).
A estrutura stat
armazena a contagem de links em um campo do tipo nlink_t
, portanto, o tipo desse campo fornece um limite superior no seu sistema. Mas há uma boa chance de que você nunca consiga chegar tão longe: é comum ter um nlink_t
de 32 bits, mas apenas 16 bits em muitos sistemas de arquivos (um grep rápido na fonte do Linux mostra que ext [234], NTFS , UFS e XFS usam contagens de links de 16 bits nas estruturas de dados do kernel).