Bu işlev 
yığınak yığınağına veri yazmak için bir akım açar. Bu yığınakta bir nesne başlatır ve onu veri yazıldıkça büyütür (bkz. 
Büyüyen Nesneler).
    
Bu akım üzerinde yapılan bir fflush çağrısı nesnenin o anki boyunu yazılmış olan veriye eşitler. Bir fflush çağrısından sonra nesneyi geçici olarak inceleyebilirsiniz.
    
Bir yığınak akımının dosya konumunu 
fseek veya 
fseeko (
Dosyalarda Konumlama) işlevlerini kullanarak değiştirebilirsiniz. Dosya konumunun yazılmış olan verinin sonrasına taşınması arada kalan boşlukların sıfırlarla doldurulmasına sebep olur.
    
Nesneyi kalıcı yapmak için yığınağı fflush ile güncelleyin ve obstack_finish ile nesneyi bitirip adresini alın. Bunun ardından akıma yazma işlemleri yığınakta yeni bir nesne başlatır ve sonraki fflush ve obstack_finish çağrılarına kadar bu nesne kullanılır.
    
Fakat ne uzunlukta bir nesne kullanıldığını nasıl bulacaksınız? Nesne uzunluğunu 
obstack_object_size (
Bir Yığınağın Durumu) çağrısı ile alabileceğiniz gibi nesneyi aşağıdaki gibi boş karakterle sonlandırabilirsiniz:
    
obstack_1grow (yığınak, 0);
Hangi yöntemi kullanırsanız kullanın, bunu obstack_finish çağrısından önce yapmalısınız (isterseniz ikisini de yapabilirsiniz).