क्या एक फ़ाइल के लिए हार्डलिंक की संख्या की सीमा है? क्या यह कहीं भी निर्दिष्ट है? लिनक्स के लिए सुरक्षित सीमाएँ क्या हैं? और अन्य POSIX सिस्टम के लिए क्या?
क्या एक फ़ाइल के लिए हार्डलिंक की संख्या की सीमा है? क्या यह कहीं भी निर्दिष्ट है? लिनक्स के लिए सुरक्षित सीमाएँ क्या हैं? और अन्य POSIX सिस्टम के लिए क्या?
जवाबों:
पॉज़िक्स के लिए आवश्यक है कि ऑपरेटिंग सिस्टम हार्ड लिंक की अवधारणा को समझे लेकिन यह नहीं कि हार्ड लिंक वास्तव में किसी विशेष परिस्थिति में उपयोग किया जा सकता है। आप यह पता लगा सकते हैं कि किसी विशेष स्थान पर कितने हार्ड लिंक की अनुमति है (यह फाइलसिस्टम प्रकार से भिन्न हो सकता है) कॉल करके । न्यूनतम सीमा ( ) 8 है, लेकिन इस बल्कि व्यर्थ के रूप में है कई अन्य त्रुटियों वैसे भी रिपोर्ट कर सकते हैं (अनुमति नहीं दी, डिस्क भरा हुआ, ...)।pathconf(filename, _PC_LINK_MAX)
_POSIX_LINK_MAX
link()
stat
संरचना भंडार लिंक प्रकार के एक क्षेत्र में गिनती nlink_t
, तो इस क्षेत्र के प्रकार आपके सिस्टम पर एक ऊपरी सीमा देता है। लेकिन एक अच्छा मौका है कि आप कभी भी उस तक नहीं पहुंच पाएंगे: 32-बिट के लिए आम है, nlink_t
लेकिन कई फाइल सिस्टम में केवल 16 बिट्स (लिनक्स स्रोत में एक त्वरित grep से पता चलता है कि [234], NTFS, UFS और XFS कर्नेल डेटा संरचनाओं में 16-बिट लिंक काउंट का उपयोग करता है)।
यह फाइल सिस्टम पर निर्भर है।
ext2 / 3/4 की सीमा 65k लिंक है
ext4 स्रोत लाइन 643, struct ext4_inode
->__le16 i_links_count
Linux कर्नेल स्रोतों में ext3 इनोड संरचना डिस्क प्रारूप को देखते हुए (* / linux / ext3_fs.h * शामिल करें) जो लिंक की सूची को 16 बिट संख्या के रूप में सूचीबद्ध करता है
struct ext3_inode {
... snip ...
__le16 i_links_count; /* Links count */
}
मुझे लगता है कि इसका मतलब है कि एक ext3 फाइलसिस्टम में 65535 लिंक हो सकते हैं।
मैंने अन्य फाइल सिस्टम के लिए मानों की जाँच नहीं की है।