Üye Kayıt Üye Giriş

Standart C Fonksiyonlarının Tamponlama Biçimlerinin Değiştirilmesi


Standart C Fonksiyonlarının Tamponlama Biçimlerinin Değiştirilmesi

 

Tamponlamadaki default durumlar daha sonra değiştirilebilmektedir. Bunun için setbuf ve
setvbuf fonksiyonları kullanılır.


void setbuf(FILE *f, char *buf);


Bu fonksiyon dosya için kullanılacak tamponu set eder. Bu fonksiyonda programcının daha
önceki tampon uzunluğu kadar (default BUFSIZ kadar) bir alanı tahsis etmiş olması gerekir.
Bu fonksiyon dosya açıldıktan sonra hiç bir işlem yapılmadan uygulanmalıdır. Yani bu
fonksiyonla yalnızca kullanılan tamponun bölgesini değiştirebiliriz. Şüphesiz fclose işlemi
sırasında standart kütüphane fonksiyonu kullanıcının oluşturduğu alanı free hale getirmez.


f = fopen(“a.dat”, “r”);
//...
char *pMyBuf = malloc(BUFSIZ);
setbuf(f, pMyBuf);


fclose işlemi sırasında sistem kendi tamponunu kullanıyorsa ve bu tampon heap üzerinde
yaratılmışsa free hale getirme işlemi yapılacaktır. setbuf fonksiyonunda tampon NULL olarak
girilirse tamponlama kaldırılır.


int setvbuf(FILE *f, char *buf, int mode, size_t size);


Bu fonksiyon bütün tamponlama mekanizmasını değiştirebilmektedir. Fonksiyonun buf
parametresi yeni tamponun adresini, size parametresi ise uzunluğunu belirtmektedir. Bu
sayede istenilen uzunlukta tamponun kullanılması mümkün olabilmektedir. mode parametresi


_IOFBF
_IOLBF
_IONBF


değerlerinden birisi olabilir. Eğer _IONBF seçilmişse buf ve size parametreleri dikkate
alınmamaktadır. Bu fonksiyon herhangi bir zaman çağırılabilir.

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

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

ETİKETLER