답변:
Posix는 운영 체제가 하드 링크의 개념을 이해해야하지만 특정 상황에서 하드 링크를 실제로 사용할 수는 없습니다. 을 호출하여 특정 위치에서 허용되는 하드 링크 수 (파일 시스템 유형에 따라 다름)를 확인할 수 있습니다 . 최소 제한 ( ) 8이지만,이 같이 오히려 의미가 어쨌든 많은 오류를보고 할 수 있습니다 (권한 디스크 전체, 거부, ...).pathconf(filename, _PC_LINK_MAX)
_POSIX_LINK_MAX
link()
stat
구조를 저장 링크 타입의 필드에 계산 nlink_t
이 필드의 유형이 시스템에 상한을 제공하므로,. 그러나 nlink_t
많은 파일 시스템에서 32 비트 이지만 16 비트 만 있는 것이 일반적입니다 (리눅스 소스의 빠른 grep은 ext [234], NTFS, UFS 및 XFS는 커널 데이터 구조에서 16 비트 링크 수를 사용합니다.
링크를 16 비트 숫자로 나열하는 리눅스 커널 소스 (* include / linux / ext3_fs.h *)에서 ext3 inode 구조 디스크 형식을 살펴보면
struct ext3_inode {
... snip ...
__le16 i_links_count; /* Links count */
}
그것은 ext3 파일 시스템이 최대 65535 개의 링크를 가질 수 있음을 의미한다고 생각합니다.
다른 파일 시스템의 값을 확인하지 않았습니다.