แต่ละกระบวนการมีตารางตัวอธิบายไฟล์ของตัวเอง ตัวอธิบายไฟล์ 4 ในกระบวนการ 1234 คะแนนภายในตารางของกระบวนการ 1234 ตัวอธิบายไฟล์ 4 ในกระบวนการ 5678 คะแนนภายในตารางของกระบวนการ 5678 กรณีที่คุณต้องคุ้นเคยคือ file descriptors 0, 1 และ 2 ซึ่งสำหรับแต่ละขั้นตอนคืออินพุตมาตรฐานเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐาน
กระบวนการสามารถเปิดไฟล์เดียวกันมากกว่าหนึ่งครั้ง สิ่งนี้อาจเกิดขึ้นโดยบังเอิญตัวอย่างเช่นเมื่อเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานของกระบวนการถูกเปลี่ยนเส้นทางไปยังเทอร์มินัลเดียวกันหรือไปยังไฟล์เดียวกัน รายการตารางไฟล์พื้นฐาน (เช่นLinuxstruct file
) มีมากกว่าข้อมูลเกี่ยวกับไฟล์ พวกเขายังมีโหมดการเปิด (เช่นอ่านหรือเขียน) และสถานะอื่น ๆ (เช่นธงเช่นปิด -on-exec) ตัวอย่างเช่นกระบวนการอาจเปิดเทอร์มินัลสำหรับการอ่านเฉพาะบน file descriptor 0 และเทอร์มินัลเดียวกันนั้นเปิดเพื่อการเขียนบน file descriptor 2 เท่านั้นรายการตารางไฟล์ยังมีตำแหน่งของกระบวนการในไฟล์ กระบวนการอาจต้องการlseek
ตำแหน่งที่แตกต่างกันสองตำแหน่งในไฟล์เดียวกันดังนั้นจะใช้dup
เพื่อให้ได้สองตัวจัดการกับไฟล์นั้น
4
ในกระบวนการทั้งสองนั้นสัมพันธ์กับจำนวนของ fd ที่เปิดอยู่ Fd0-2
(stdin, stdout, sdterr) จะเปิดขึ้นเสมอสำหรับกระบวนการใหม่และหมายเลขจะไม่ถูกสงวนไว้สำหรับกระบวนการนั้นเท่านั้น