Bir dosya üzerinde okunacak ya da yazılacak bir baytın yerini belirten bir açık dosya özelliği de dosya konumu’dur. GNU sisteminde ve tüm POSIX sistemlerinde dosya konumu, dosya başlangıcından itibaren ilgili baytın bulunduğu yeri belirten bir tamsayıdır.
Dosya konumu, dosya ilk açıldığında dosyanın başlangıcına ayarlanır ve her okuma veya yazma işleminde ilerletilir. Yani bir dosyaya erişim normalde sıralıdır.
Sıradan dosyalar için dosyanın herhangi bir yerine yazmak ya da okumak mümkündür. Bazı dosya çeşitlerinde de bu mümkündür. Bunun mümkün olduğu dosyalara kimi zaman
rasgele erişimli dosyalar denir. Dosya konumunu akımlarda
fseek işlevini kullanarak (
Dosyalarda Konumlama), dosya tanımlayıcılarda
lseek işlevini kullanarak (
Girdi ve Çıktı İlkelleri) değiştirebilirsiniz. Sıralı erişimi desteklemeyen dosyalar üzerinde dosya konumunu değiştirmeye çalışırsanız
ESPIPE hatasını alırsınız.
Ekleme erişimli açılmış akım ya da tanımlayıcılar özellikle çıktılamaya konudur: Bu tür dosyalara çıktılama
daima dosya
sonuna dosya konumuna bakılmaksızın, sıralı ekleme olarak yapılır. Aynı dosya üzerinde okuma yapıldığında dosya konumu hala kullanılabilir durumda kalır, çıktılama bunu etkilemez.
Bir dosya üzerinde birden fazla uygulama çalıştığında ne olacağını düşünüyor olabilirsiniz. Her uygulama kendi çalışma bölgesinde çalışır, her uygulamanın kendi dosya göstericisi olduğundan diğer uygulamanın yaptıklarından etkilenmez.
Fiili olarak, her dosya açılışında ayrı bir dosya konumu oluştrurulur. Dolayısıyla, aynı yazılım içinde bir dosyayı iki kere açarsanız, iki akım veya dosya tanımlayıcı için birbirinden bağımsız dosya konumlayıcınız olur.
Aksine, bir tanımlayıcı açar ve bu tanımlayıcıyı kopyalayarak bir tanımlayıcı daha elde ederseniz, iki dosya konumlayıcı daima aynı dosya konumunu gösterir, birinin değiştirilmesi diğerinde de aynı etkiyi oluşturur.