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.
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
- 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.