Akımların Kapatılması
Önceki XII. Oylum - Akımlar Üzerinde Giriş/Çıkış Sonraki
Akımların Kapatılması
Bir akım fclose ile kapatıldığında akım ile dosya arasındaki bağlantı kesilir. Bir akım kapatıldıktan sonra artık onun üzerinde bir işlem yapılamaz.
int fclose
(FILE *akım)
işlev
Bu işlev akım’ın kapatılmasına ve dosya ile bağlantısının kesilmesine sebep olur. Tamponlanmış çıktılar yazılır, tamponlanmış girdiler ise iptal edilir. Dosya başarıyla kapatılırsa işlev sıfırla döner, aksi takdirde EOF ile döner.
Bir çıkış akımını kapatmak için fclose çağrısı yapıldığında hataların saptanması önem kazanır, çünkü gerçek hayatta hergün aldığınız hatalar bu sırada oluşabilir. Örneğin, fclose tampondaki çıktıyı yazarken disk doluverirse bir hata alabilirsiniz. Hatta tamponun boş olduğunu bildiğiniz durumda bile eğer NFS kullanıyorsanız dosya kapatılırken hata alabilirsiniz.
Bu işlev stdio.h başlık dosyasında bildirilmiştir.
GNU C kütüphanesinde tüm akımları kapatmak için ayrı bir işlev vardır.
int fcloseall
(void)
işlev
Bu işlev sürecin açık olan tüm akımlarını kapatır ve bunlarla bağlantılı dosyalara olan bağlantılar kesilir. Tüm tamponlanmış veri yazılır, tamponlanmış girdiler ise iptal edilir. İşlev, tüm dosyalar hatasız kapatılırsa sıfır ile, hata oluşursa EOF ile döner.
Bu işlev çok özel durumlarda örneğin bir hata oluşup sürecin sonlandırılması gerektiğinde kullanılmalıdır. Normalde her akım sorunlarının tanımlanabilmesi için ayrı ayrı kapatılmalıdır. Ayrıca bu işlev standart akımları da kapatacağından sorunlar çıkarır.
Bu işlev stdio.h başlık dosyasında bildirilmiştir.
Yazılımınız main işlevinden normal çıkış yaparsa ya da bir exit çağrısı ile çıkarsa tüm açık akımlar özdevinimli olarak düzgünce kapatılır. Yazılımınız başka bir şekilde (örneğin bir abort çağrısı ile ya da bir ölümcül sinyal ile) sonlandırılırsa açık akımlar düzgünce kapatılamayabilir. Tamponlanmış çıktılar dosyalara yazılamayabilir ve dosyalar eksik ya da boş kalabilir. Akımların tamponlanması ile ilgili daha ayrıntılı bilgi Akım Tamponlama bölümünde bulunabilir.
Önceki Üst Ana Başlık Sonraki
Akımların Açılması Başlangıç Akımlar ve Evreler
Bir Linux Kitaplığı Sayfası