Khi tạo ổ cắm unix, tên đường dẫn (man 7 unix
) được phép dài tối đa 108 ký tự. Đối với một người bạn điều này gây ra một lỗi trong chương trình của mình bởi vì con đường của ông đã lâu hơn. Bây giờ chúng ta tự hỏi chính xác con số đó đã được xác định như thế nào.Tại sao chiều dài đường dẫn tối đa được phép cho unix-socket trên linux 108?
Tôi có nghi ngờ rằng số được xác định sao cho số sizeof
của cấu trúc đó sockaddr_un
rõ ràng so với kích thước của các địa chỉ sockaddress khác như sockaddr_in
. Nhưng nếu họ muốn tránh xung đột với các giá trị sizeof khác, tại sao không sử dụng số nguyên tố chẳng hạn? Ai đó có thể vui lòng cung cấp nguồn ủy quyền cho điều đó không?
Tại sao số nguyên tố sẽ tránh được kích thước của các loại khác? –
@EdHeal Có lẽ tôi đã nhầm lẫn nhưng việc thêm bội số của 2 (do sắp xếp) sẽ không còn tạo ra cấu trúc phù hợp với kích thước của nó. Ngoài ra tôi có thể hỏi, tại sao lại sử dụng một số chẵn, nếu mục tiêu là tránh đụng độ? Điều đó dường như chỉ ra rằng sự nghi ngờ của tôi về con số có thể không chính xác. –
Cấp rất nhiều cấu trúc là nhiều của twos (có lẽ một nửa trong số họ). Nhưng làm cho một cái gì đó kích thước của một số nguyên tố không tránh đụng độ. Dù sao điểm làm việc này là gì nếu lập trình viên nhận được phần cơ bản này sai và sử dụng cấu trúc sai. –