ungetc işlevi, akım akımına sıradaki karakterden önce okunacak ilk girdi olarak c karakterini yerleştirir.
c karakteri olarak EOF verilirse işlev hiçbir işlem yapmaz ve EOF ile döner. Bu özelliğini kullanrak, c karakteri olarak getc işlevinin dönüş değerini vererek getc’den dönen değer üzerinde hata denetimi
yapmanız gerekmez.
Akıma gönderdiğiniz karakterin son okuduğunuz karakter olması gerekmez. Hatta ungetc kullanmak için akımdan son karakteri okumanız da gerekmez. Ancak bir akımdan hiçbir okuma yapmadan bir karakteri akıma geri itmenin de bir anlamı yoktur. GNU C kütüphanesi ikilik kipte açılmış dosyalar için de bu oluşum için destek verir, diğer sistemlerde bu yoktur.
GNU C kütüphanesi akıma sadece tek karakterin geri itilmesini destekler. Hiçbir okuma yapmadan işlevi peşpeşe iki defa kullanamazsınız. Diğer sistemlerde çok sayıda karakteri akıma geri itebilir ve akıma ittiğiniz karakterleri ters sırada okuyabilirsiniz; yani, son ittiğiniz karakteri ilk olarak okursunuz.
Karakterlerin akıma geri itilmesi dosyada bir değişiklik yapmaz, sadece dahili tampon etkilenir. Bir dosya konumlama işlevi (
fseek,
fseeko ve
rewind işlevlerinden biri; bkz.
Dosyalarda Konumlama) çağrılırsa geri itilmiş olarak bekleyen karakterler iptal edilir.
Okunmamış karakter olarak bir akıma itilen karakter dosya sonuna denk gelirse, akımın dosyasonu belirteci temizlenir, çünkü artık akımda okunacak bir karakter vardır. Karakteri okuduktan sonra tekrar dosyasonu saptanacaktır.