जवाबों:
यह सभी तरह से यूनिक्स के पहले संस्करण में वापस आता है , जहां सभी मानक फ़ाइल नाम केवल 6 वर्णों (लंबे समय तक passwd
) पर ही थे , भले ही इस संस्करण में एक फ़ाइल नाम में 8 वर्णों का समर्थन किया गया था । अधिकांश कमांड्स में एक संबंधित स्रोत फ़ाइल होती है जो समाप्त हो जाती है .c
(जैसे umount.c
), जो आधार नाम के लिए केवल 6 वर्ण छोड़ती है।
6-वर्ण की सीमा भी पहले के विकास संस्करण से एक होल्डओवर हो सकती है, या एक तत्कालीन आईबीएम प्रणाली से विरासत में मिली थी जिसमें 6-वर्ण सीमा थी। (प्रारंभिक सी कार्यान्वयन की पहचानकर्ताओं पर 6-वर्ण की सीमा थी - लंबे पहचानकर्ता स्वीकार किए जाते थे लेकिन संकलक केवल पहले 6 वर्णों को देखता था, इसलिए foobar1
और foobar2
समान चर थे।)
(मुझे लगता है कि मुझे एक umount
आदमी पृष्ठ याद आया जिसने वर्तनी को अज्ञात मूल के बग के रूप में सूचीबद्ध किया था, लेकिन अब मैं इसे नहीं पा सकता हूं।)
directory
, जो अभी तक फिट नहीं हुआ है)। तो मुझे आश्चर्य है कि क्यों passwd
6 वर्णों को काट दिया गया था ( passwd
अभी तक या तो एक आदेश नहीं था , बस /etc/passwd
)।
urandom
ऐसा लगता है कि कुछ गलत सूचनाएँ यहाँ कुछ समय से बैठी हैं।
umount
संक्षिप्त नाम रखने वाले कमांड के लिए सबसे संभावित कारण यह है कि यह सिस्टम कॉल के नाम से आता है जो इसका उपयोग करता है umount()
:।
संभावित कारण "अनमाउंट" सिस्टम कॉल का नाम umount()
है क्योंकि शुरुआती लिंकर्स ने बाहरी पहचानकर्ताओं की लंबाई को कुछ प्रकार के सिस्टम पर 6 वर्णों (केवल एक मामले) तक सीमित कर दिया है (और इस तरह के उपकरणों के साथ संगतता बनाए रखने के लिए समझ में आया। उस समय), और "यूमाउंट" "अनमाउंट" के लिए संक्षिप्त नाम का एक तार्किक रूप है। प्रकाशन के समय ब्याज की विभिन्न प्रणालियों की बाहरी पहचानकर्ता विशेषताओं की एक सूची के लिए सी प्रोग्रामिंग भाषा के पहले संस्करण का पृष्ठ 179 देखें ।
यह भी ध्यान दें कि शुरुआती सी कंपाइलरों ने एक पहचानकर्ता के पहले 8 पात्रों को महत्वपूर्ण माना, लेकिन पहचानकर्ताओं को लंबे समय तक रहने दिया। (K & R पेज 33)
ध्यान दें कि प्रतीक टेबलों में पहचानकर्ताओं की लंबाई कुछ भी नहीं है जो सीधे फाइलनाम की लंबाई के साथ करना है, कम से कम यूनिक्स के भीतर नहीं है (यूनिक्स प्रतीक टेबल, वी 1 के बाद से, पहचानकर्ताओं के लिए 8 वर्ण हैं, हालांकि यह वी 1 मैनुअल में उल्लेख किया गया है कि कोडांतरक " अधिकतम 7 बाइट्स " ) के प्रतीक उत्पन्न करता है ।
उसी कारण से creat
सिस्टम कॉल वर्तनी नहीं है create
?
.c
(या.s
) एक्सटेंशन = 8 वर्ण फ़ाइल नाम सीमा।