Üye Kayıt Üye Giriş

Dosya Türünün Belirlenmesi


Dosya Türünün Belirlenmesi

Genel olarak POSIX sistemlerinde bir dosya normal sıradan bir dosya olabilir, bir dizin
dosyası olabilir, özel karakter dosyası olabilir, özel blok dosyası olabilir, socket ya da FIFO
dosyalar olabilir. Dosyanın erişim bilgileri ve türü stat yapısının unsigned short türden
st_mode elemanına bit olarak kodlanmıştır. Ancak bu bit kodlama işlemi sistemden sisteme
değiştiği için taşınabilirliği sağlamak amacı ile özel makrolar kullanılmalıdır. st_mode
elemanı bu makroya sokulur, makrodan sıfır değeri elde edilirse dosya ilgili türden değil, sıfır
dışı bir değer elde edilirse dosya ilgili türdendir. Kullanılan makrolar şunlardır:


S_ISREG
S_ISDIR
S_ISCHR
S_ISBLK
S_ISFIFO


Örneğin bir dosyanın dizin olup olmadığı aşağıdaki işlemle anlaşılabilir.


if (S_ISDIR(status.st_mode)) {
//...
//...
}


Dosyanın erişim hakları için de & işlemine sokulabilecek aşağıdaki sembolik sabitler
tanımlanmıştır:


S_IRUSR
S_IWUSR
S_IXUSR
S_IRGRP
S_IWGRP
S_IXGRP
S_IROTH
S_IWOTH
S_IXOTH


st_mode değeri buradaki sembolik sabitlerle & işlemine sokularak ilgili özelliğin olup
olmadığı anlaşılır. Örneğin:


if (status.st_mode & S_IWUSR) {
//...
}


Burada dosyanın sahibine yazma hakkı verilip verilmediği test edilmek istenmiştir.
C ve Sistem Programcıları Derneği 18
DOS ve Win32 Sistem Programcıları için Not: stat fonksiyonu DOS’taki findfirst,
Win32’deki FindFirstFile fonksiyonlarına işlevsel olarak benzemektedir. Bilindiği gibi bu
fonksiyonlar dosya bilgilerinin dizin girişlerinden alıp ffblk ya da WIN32_FIND_DATA
türünden yapılar içerisine doldururlar.

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER