“fopen” ile bir dosyayı açtığımızda fopen açılan her dosya için bir tampon oluşturur. Tampon <stdio.h> da bildirilen BUFSIZ sembolik sabitinin belirttiği uzunluktadır. C'de tamponlama mekanizması ( Tampon stratejisi ve tamponlama boyutu ) iki ayrı fonksiyonla değiştirilebilmektedir . Bunlar setbuf ve setvbuf fonksiyonlarıdır. Standartlara göre setbuf ve setvbuf fonksiyonları dosya fopen'la açıldıktan ve hiçbir işlem yapmadan önce çağrılmalıdır.
Tamponlama stratejisi;
- _IOFBF :Full Buffered
- _IOLBF :Line Buffered
- _IONBF :No Buffered
setbuf:
setbuf aşağıda belirtilen örnekte olduğu gibi sadece tamponlama yerini değiştirir. Fonksiyon çağrısından sonra tamponlama olarak tmp isimli alanı kullanmaya başlar.
setvbuf:
setvbuf fonksiyonu ise hem tamponlama yerini hem tamponlama boyutunu hem de stratejisini değiştirir.
iki örneğinde çıktısı aşağıdaki gibidir.