Her işlemin kendi dosya tanımlayıcı tablosu vardır. 1234 işlemindeki dosya tanımlayıcı 4, işlem 1234 tablosunun içindedir. 5678 işlemindeki dosya tanıtıcısı 4, işlem 5678'in çizelgesinin içindedir. Aşina olmanız gereken bir durum, her işlem için standart girdi, standart çıktı ve standart hata olan ve bunların nereye yönlendirildiğini gösteren 0, 1 ve 2 dosya tanımlayıcılarıdır.
Bir işlem aynı dosyayı bir defadan fazla açabilir. Bu, örneğin bir işlemin standart çıktısı ve standart hatası aynı uçbirime veya aynı dosyaya yönlendirildiğinde, tesadüfen gerçekleşebilir. Temel dosya tablosu girdileri (örneğin Linux'larstruct file
) dosya hakkındaki bilgilerden daha fazlasını taşır; ayrıca açılış modları (örneğin, okuma veya yazma) ve diğer durumları (bayraklar, örneğin uygulamaya yakın) içerirler. Örneğin, bir işlem yalnızca dosya tanımlayıcısı 0'da okumak için açılan bir terminali ve yalnızca dosya tanımlayıcısı 2'ye yazmak için açılan aynı terminali içerebilir. Bir işlem lseek
aynı dosyada iki farklı pozisyona geçmek isteyebilir ve bu dosyaya dup
iki tutamaç elde etmek için bunu kullanır .
4
her iki işlemde de fd'nin kendi açık fd'lerine göre olması. Fd en0-2
(stdin, stdout sdterr) her zaman yeni bir süreç için açılır ve rakamlar yalnızca söz konusu işlem için ayrılmış değildir.