Akımların Temizlenmesi
Önceki Akımlarla Tanıtıcıları Karıştırmanın Tehlikeleri Sonraki
Akımların Temizlenmesi
GNU sisteminde, herhangi bir akımı fclean ile temizleyebilirsiniz:
int fclean
(FILE *akım)
işlev
akım akımını temizler yani tamponunu boşaltır. akım çıktılama yapıyorsa, çıktılamaya zorlar; giriş yapıyorsa, tampondaki veriyi yeniden okumak için düzenleyerek sisteme iade eder.
Diğer sistemlerde, çoğu durumda bir akımı temizlemek için fflush kullanabilirsiniz.
Bir akımın zaten temiz olduğunu biliyorsanız fclean veya fflush çağrısı yapmayabilirsiniz. Örneğin, bir tamponsuz akım daima temizdir. Dosya sonundaki bir girdi akımı daima temizdir. Son çıktılanan karakter bir satırsonu karakteri ise bir satır tamponlu akım daima temizdir. Bununla birlikte, açıldığı anda bir girdi akımı, girdi tamponu boş olmayabileceğinden temiz olmayabilir.
Çoğu sistemde bir akımı temizlemenin mümkün olmadığı bir durum vardır. Bu, rasgele erişimli olmayan bir dosyadan girdi yapan bir akımın varlığıdır. Böyle akımlar genellikle sürekli okur ama dosya rasgele erişimli olmadığında, okunmuş olan veriye tekrar erişmenin bir yolu yoktur. Bir girdi akımı bir rasgele erişimli dosyadan okuduğu zaman, fflush akımı temizler ama dosya konumlayıcıyı alakasız bir yerde bırakır; bu bakımdan, herhangi bir G/Ç işlemi yapmadan öce dosya konumlayıcıyı doğru yere ayarlamalısınız. GNU sisteminde fclean kullandığınızda her iki sorun da ortaya çıkmaz.
Sadece çıktılama yapan bir akımın kapatılması da fflush yapar, dolayısıyla bir çıktı akımının temizlenmesinde bu yöntem de kullanılabilir. GNU sisteminde bir girdi akımının kapatılması fclean yapar.
Uçbirim kipini ayarlamak gibi denetim işlemleri için tanıtıcısını kullanmadan önce bir akımı temizleyemezsiniz; bu işlemler dosya konumunu etkilemez ve dosya konumundan etkilenmez. Bu işlemler için her tanımlayıcıyı kullanabilirsiniz ve tüm kanallar aynı anda etkilenir. Bununla birlikte, metin zaten bir akıma çıktılanır ama hemen ardından boşaltılırken yeni uçbirim kiplerine konu olacak akım tarafından hala tamponlu olur. Yapılan çıktılamanın o anda etkili olan uçbirim ayarları tarafından kapsandığından emin olmak için kipi ayarlanmadan önce uçbirimin çıktı akımları boşaltılır. Bkz. Uçbirim Kipleri.
Önceki Üst Ana Başlık Sonraki
Bağımsız Kanallar Başlangıç G/Ç'yı Hızlı Dağıtıp Toplama
Bir Linux Kitaplığı Sayfası