Dosyaların Silinmesi
Önceki XIV. Oylum - Dosya Sistemi Arayüzü Sonraki
Dosyaların Silinmesi
Bir dosyayı unlink veya remove ile silebilirsiniz.
Silme işleminde aslında sadece dosyanın ismi silinir. Eğer dosya sadece isimden ibaretse dosyanın kendisi de silinmiş olur. Eğer dosyanın başka isimleri de varsa onlar bu isimler altında hala erişilebilir olur (bkz. Sabit Bağlar).
int unlink
(const char *dosyaismi)
işlev
unlink işlevi dosyaismi ile belirtilen dosya ismini siler. Eğer dosya sadece isimden ibaretse dosyanın kendisi de silinir. (Aslında, eğer herhangi bir süreç dosyayı açmışsa silme işlemi süreçler dosyayı kapatıncaya kadar ertelenir.)
unlink işlevi unistd.h başlık dosyasında bildirilmiştir.
İşlev başarılı olduğunda 0, aksi takdirde -1 ile döner. Dosya ismi hatalarına ek olarak aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EACCES
Silinecek dosyanın bulunduğu dizinde yazma izniniz yok ya da dizinde yapışkan bit var ve dosya size ait değil.
EBUSY
Bu hata dosyanın sistem tarafından kullanıldığından silinemeyeceğini belirtir. Örneğin, dosya ismi kök dizini ya da bir dosya sisteminin bağlı olduğu dizini belirtiyorsa bu hata oluşur.
ENOENT
Silinmek istenen dosya mevcut değil.
EPERM
Bazı sistemlerde unlink bir dizini silmek için kullanılamaz ya da en azından sadece ayrıcalıklı kullanıcı bunu yapabilir. Böyle sorunlarla karşılaşmamak için dizinleri silerken rmdir kullanın. (GNU sisteminde unlink kesinlikle bir dizin ismini silemez.)
EROFS
Silinecek dosya bir salt-okunur bağlı dosya sisteminde ve bu değiştirilemez.
int rmdir
(const char *dosyaismi)
işlev
rmdir işlevi bir dizini siler. Silinecek dizin boş olmalıdır; başka bir deyişle, sadece . ve .. girdilerini içermelidir.
Birçok bakımdan, rmdir işlevi unlink gibi davranır. Bu işlev için iki hata durumu daha tanımlanmıştır:
ENOTEMPTY
EEXIST
Silinecek dizin boş değil.
Bu iki hata kodu bir diğerinin eşanlamlısıdır, bazı sistemlerde biri, bazılarında öbürü kullanılır. GNU sisteminde daima ENOTEMPTY kullanılır.
rmdir işlevi unistd.h başlık dosyasında bildirilmiştir.
int remove
(const char *dosyaismi)
işlev
Bu bir dosyayı silmek için kullanılan bir ISO C işlevidir. Dosyalarla unlink gibi, dizinlerle rmdir gibi çalışır. remove işlevi stdio.h başlık dosyasında bildirilmiştir.
Önceki Üst Ana Başlık Sonraki
Sembolik Bağlar Başlangıç Dosya İsimlerinin Değiştirilmesi
Bir Linux Kitaplığı Sayfası