Dizin Girdileri
Önceki Dizinlere Erişim Sonraki
Dizin Girdileri
Bu bölümde bir dizin akımından sağlanan tek bir dizin girdisinde bulacaklarınız açıklanacaktır. Bu bölümdeki tüm semboller dirent.h başlık dosyasında bildirilmiştir.
struct dirent
veri türü
Dizin girdileri hakkında bilgi döndürmekte kullanılan yapıdır. Şu üyelere sahiptir:
char d_name[]
Boş karakter sonlandırmalı dosya ismi elemanıdır. Bu yapının üyesi olarak tüm POSIX sistemlerinde bulabileceğiniz tek üyedir.
ino_t d_fileno
Dosyanın seri numarasıdır. BSD uyumluluğu için bu üyeye d_ino ismiyle de erişebilirsiniz. GNU siteminde ve çoğu POSIX sisteminde, bu üye, çoğu dosya için stat çağrısından dönen st_ino üyesi ile aynıdır. Bkz. Dosya Öznitelikleri.
unsigned char d_namlen
Dosya isminin sonlandırıcı boş karakter içermeyen unsigned char türünden uzunluğudur. Eğer bu üye varsa, sembolü _DIRENT_HAVE_D_NAMLEN tanımlıdır.
unsigned char d_type
Dosyanın türüdür. Değeri için tanımlanmış sabitler:
DT_UNKNOWN
Dosya türü bilinmiyor. Bazı sistemlerde dönen tek değerdir.
DT_REG
Normal bir dosya.
DT_DIR
Bir dizin.
DT_FIFO
Bir isimli boru ya da FIFO. Bkz. FIFO Özel Dosyaları.
DT_SOCK
Bir yerel alan soketi.
DT_CHR
Bir karakter aygıtı.
DT_BLK
Bir blok aygıtı.
Bu üye bir GNU oluşumudur. Eğer bu üye varsa, sembolü _DIRENT_HAVE_D_TYPE tanımlıdır. Kullanıldığı sistemlerde struct statbuf yapısının st_mode üyesindeki dosya türü bitlerine karşı düşer. Eğer değer saptanamazsa üyenin değeri DT_UNKNOWN olur. Şu iki makro d_type ile st_mode değerleri arasında dönüşüm yapar:
int IFTODT
(mode_t st_mode)
makro
Belirtilen st_mode değerine karşı düşen d_type değeri ile döner.
mode_t DTTOIF
(int d_type)
makro
Belirtilen d_type değerine karşı düşen st_mode değeri ile döner.
Bu yapı ileride ek üyeler içerebilir. Yeni üyeler olduğunda derleme ortamında daima _DIRENT_HAVE_D_xxx biçiminde bir makro ismiyle görünecektir. Burada xxx yeni üyenin ismidir. Örneğin, bazı sistemlerde d_reclen diye bir üye vardır ve bu sistemlerde _DIRENT_HAVE_D_RECLEN makrosu tanımlıdır.
Bir dosyanın çok sayıda ismi varsa, her ismin kendi dizin girdisi olur. Böyle dosya isimlerinin tek bir dosyaya ait olup olmadığı d_fileno alanındaki değere bakarak anlaşılır. Bu üyenin değeri bu tür girdilerde aynıdır.
Boyut, değişiklik zamanı gibi dosya öznitelikleri dosyanın kendisinde bulunur, bir dizin girdisinin elemenları değillerdir. Bkz. Dosya Öznitelikleri.
Önceki Üst Ana Başlık Sonraki
Dizinlere Erişim Başlangıç Bir Dizin Akımının Açılması
Bir Linux Kitaplığı Sayfası