Bir Dosyanın Özniteliklerinin Okunması
Önceki Dosya Öznitelikleri Sonraki
Bir Dosyanın Özniteliklerinin Okunması
Bir dosyanın özniteliklerini öğrenmek için stat, fstat ve lstat işlevleri kullanılır. Öznitelikleri bir struct stat nesnesinde döndürürler. Bu işlevler sys/stat.h başlık dosyasında bildirilmiştir.
int stat
(const char  *dosyaismi,
 struct stat *tampon)
işlev
stat işlevi ismi dosyaismi ile belirtilen dosyanın özniteliklerini tampon ile gösterilen yapı içinde döndürür.
dosyaismi bir sembolik bağın ismiyse, bağın hedefindeki dosyanın öznitelikleri döndürülür. Sembolik bağın hedefindeki dosya mevcut değilse işlev dosyanın mevcut olmadığını bildirerek başarısız olur.
İşlem sorunsuz yerine getirilmişse 0, aksi takdirde -1 döner. Dosya ismi hatalarına ek olarak aşağıdaki errno hata durumu bu işlev için tanımlanmıştır:
ENOENT
dosyaismi isminde bir dosya yok.
Kaynakların _FILE_OFFSET_BITS == 64 ile derlendiği sistemlerde bu işlev stat64 ile aynıdır.
int stat64
(const char    *dosyaismi,
 struct stat64 *tampon)
işlev
2^31 bayttan daha büyük dosyalarla çalışmanın mümkün olduğu 32 bitlik sistemlerde bu işlev stat işlevine eşdeğerdir. Bunu mümkün kılmak için sonucu döndüren tampon, struct stat64 türünde bir yapıya göstericidir.
Kaynakların _FILE_OFFSET_BITS == 64 ile derlendiği sistemlerde bu işlev stat ismiyle bulunur.
int fstat
(int          dosyatanıtıcı,
 struct stat *tampon)
işlev
fstat işlevi argüman olarak dosya ismi yerine bir açık dosya tanıtıcı alması dışında stat işlevinin benzeridir.
stat gibi, fstat işlevi de başarı durumunda 0 ve hata oluşmuşsa -1 ile döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EBADF
dosyatanıtıcı argümanı geçerli bir dosya tanıtıcı değil.
Kaynakların _FILE_OFFSET_BITS == 64 ile derlendiği sistemlerde bu işlev fstat64 ile aynıdır.
int fstat64
(int            dosyatanıtıcı,
 struct stat64 *tampon)
işlev
Bu işlev fstat işlevine benzer fakat 32 bitlik platformlarda büyük dosyalarla çalışır. Büyük dosyalarla çalışmak için dosyatanıtıcı dosya tanıtıcısı open64 veya creat64 ile sağlanmış olmalıdır. tampon ile gösterilen değişken büyük değerleri tutabilen struct stat64 türünde olmalıdır.
Kaynakların _FILE_OFFSET_BITS == 64 ile derlendiği sistemlerde bu işlev fstat ismiyle bulunur.
int lstat
(const char  *dosyaismi,
 struct stat *tampon)
işlev
lstat işlevi stat işlevi gibidir fakat sembolik bağlara izin vermez. Eğer dosyaismi bir sembolik bağ ismi ise, lstat bağın hedefi ile değil bağ dosyasının kendisi ile ilgili bilgi döndürür; bunun dışında lstat işlevi stat gibi çalışır.
Kaynakların _FILE_OFFSET_BITS == 64 ile derlendiği sistemlerde bu işlev lstat64 ile aynıdır.
int lstat64
(const char    *dosyaismi,
 struct stat64 *tampon)
işlev
2^31 bayttan daha büyük dosyalarla çalışmanın mümkün olduğu 32 bitlik sistemlerde bu işlev lstat işlevine eşdeğerdir. Bunu mümkün kılmak için sonucu döndüren tampon, struct stat64 türünde bir yapıya göstericidir.
Kaynakların _FILE_OFFSET_BITS == 64 ile derlendiği sistemlerde bu işlev lstat ismiyle bulunur.
Önceki Üst Ana Başlık Sonraki
Dosya Özniteliklerinin Anlamları Başlangıç Bir Dosyanın Türünün Sınanması
Bir Linux Kitaplığı Sayfası