प्रत्येक प्रक्रिया की अपनी फाइल डिस्क्रिप्टर तालिका होती है। फाइल डिस्क्रिप्टर 4 इन प्रोसेस 1234 पॉइंट्स इनसाइड प्रोसेस 1234 टेबल। 5678 की तालिका के अंदर प्रक्रिया के 5678 अंक में फाइल डिस्क्रिप्टर 4। ऐसा मामला जिससे आप परिचित होना चाहिए, वह फाइल डिस्क्रिप्टर 0, 1 और 2 हैं जो प्रत्येक प्रक्रिया के लिए मानक इनपुट, मानक आउटपुट और मानक त्रुटि हैं, जो इंगित करते हैं कि ये कहाँ तक अनुप्रेषित किए गए थे।
एक प्रक्रिया एक ही फ़ाइल को एक से अधिक बार खोल सकती है। यह संयोग से हो सकता है, उदाहरण के लिए जब एक प्रक्रिया के मानक आउटपुट और मानक त्रुटि को एक ही टर्मिनल या एक ही फ़ाइल पर पुनर्निर्देशित किया जाता है। अंतर्निहित फ़ाइल तालिका प्रविष्टियाँ (जैसे लिनक्स कीstruct file
) फ़ाइल के बारे में अधिक जानकारी रखती हैं; उनके पास उद्घाटन मोड (जैसे पढ़ने या लिखने) और अन्य राज्य (जैसे झंडे, उदाहरण के लिए बंद-निष्पादन) भी हैं। उदाहरण के लिए, एक प्रक्रिया में केवल फ़ाइल डिस्क्रिप्टर 0 पर पढ़ने के लिए एक टर्मिनल खोला जा सकता है और वही टर्मिनल केवल फाइल डिस्क्रिप्टर पर लिखने के लिए खोला जाता है। फ़ाइल टेबल प्रविष्टियों में फ़ाइल में प्रक्रिया की स्थिति भी होती है; एक प्रक्रिया एक lseek
ही फ़ाइल में दो अलग-अलग पदों के लिए हो सकती है , और इसलिए dup
उस फ़ाइल को दो हैंडल प्राप्त करने के लिए उपयोग करेगी ।
4
दोनों प्रक्रियाओं में fd यह खुले fd की संख्या के सापेक्ष हो। Fd's0-2
(stdin, stdout, sdterr) हमेशा एक नई प्रक्रिया के लिए खोले जाते हैं और संख्या केवल इस प्रक्रिया के लिए आरक्षित नहीं होती है।