सभी चार /dev/fd/0
, /dev/stdin
, /proc/self/fd/0
और /dev/pts/2
फ़ाइल नाम हैं, के रूप में कर रहे हैं /////dev/../dev/fd//0
, /bin/sh
, /etc/fstab
, /fioejfoeijf
, आदि सभी लेकिन यह है कि पिछले उदाहरण आपकी मशीन पर किसी मौजूदा फ़ाइल के नाम होने की संभावना है। एक फ़ाइल नाम एक स्ट्रिंग है जो आपके फाइल सिस्टम पर एक फाइल को नामित कर सकती है; लिनक्स के तहत, किसी भी स्ट्रिंग में एक अशक्त बाइट नहीं होता है और जो सबसे अधिक 4096 बाइट्स पर होता है वह एक मान्य फ़ाइल नाम है। इन नामों में से बहुत से बराबर, जैसे हैं /bin/sh
है के बराबर ///bin/sh
, /bin/../bin/sh
(यह मानते हुए /bin
एक मौजूदा निर्देशिका है), आदि सभी उदाहरण मैं दे दिया है अब तक पूर्ण फ़ाइल नाम कर रहे हैं; वहाँ भी रिश्तेदार फ़ाइल नाम हैं, जो एक के साथ शुरू नहीं है /
और जिसका अर्थ वर्तमान निर्देशिका पर निर्भर करता है।
फ़ाइल नामों के आसपास की शब्दावली सार्वभौमिक नहीं है; कभी-कभी "फ़ाइल नाम" का अर्थ फ़ाइल का पूर्ण पथ होता है, और कभी-कभी इसका अर्थ है निर्देशिका प्रविष्टि का नाम। POSIX शब्दावली एक निर्देशिका प्रविष्टि के नाम के लिए " फ़ाइलनाम " या " pathname घटक " है, और एक पूर्ण पथ के लिए " pathname "।
एक फाइल डिस्क्रिप्टर एक विशेष प्रक्रिया में एक खुली फाइल को डिजाइन करता है। कर्नेल प्रत्येक प्रक्रिया के लिए फ़ाइल डिस्क्रिप्टर की एक तालिका रखता है। फ़ाइल डिस्क्रिप्टर तालिका में प्रत्येक प्रविष्टि इंगित करती है कि क्या करना है अगर प्रक्रिया फ़ाइल डिस्क्रिप्टर पर पढ़ने, लिखने और अन्य संचालन का अनुरोध करती है।
फ़ाइल डिस्क्रिप्टर एक फ़ाइल के अनुरूप हो सकता है और संबंधित नाम हो सकता है, लेकिन सभी ऐसा नहीं करते हैं। ऐसा करने वालों के लिए, फ़ाइल एक नियमित फ़ाइल, एक निर्देशिका, एक डिवाइस फ़ाइल या एक नामित पाइप (जिसे FIFO भी कहा जाता है) (द्वारा बनाई गई तरह mkfifo
) हो सकती है; कुछ प्रणालियों में आगे की संभावनाएं हैं जैसे कि यूनिक्स सॉकेट और दरवाजे। फ़ाइल डिस्क्रिप्टर के उदाहरण जिनके पास संबद्ध फ़ाइल नहीं है, उनमें पाइप (जिस तरह से बनाया गया है pipe
) और नेटवर्किंग सॉकेट शामिल हैं ।
/dev/fd/0
, /dev/stdin
और /proc/self/fd/0
एक अजीब अर्थ के साथ फ़ाइल नाम (सभी समतुल्य) हैं: वे सभी को निर्दिष्ट करते हैं जो भी फाइल वर्तमान में फ़ाइल डिस्क्रिप्टर 0. के माध्यम से एक्सेस की जाती है। जब कोई प्रक्रिया इन्हें खोलती है, तो कर्नेल इंडेक्स 0 के साथ प्रविष्टि को फाइल डिस्क्रिप्टर टेबल में एक नए रूप में कॉपी करता है। वर्णनकर्ता। इनमें से किसी भी फाइल को खोलना कॉलिंग के बराबर है dup(0)
। नामित फाइलें अप्रत्यक्ष रूप से एक नई फ़ाइल खोलने के बजाय अपनी पहले से खुली फाइलों में से एक का उपयोग करने के लिए एक प्रक्रिया है; वे ज्यादातर प्रोग्राम की कमांड लाइन पर पास करने के लिए उपयोगी होते हैं, जहां प्रोग्राम को किसी फ़ाइल के नाम को खोलने की उम्मीद है।