al_fungetc man page
al_fungetc — Allegro 5 API
#include <allegro5/allegro.h> int al_fungetc(ALLEGRO_FILE *f, int c)
Ungets a single byte from a file. Pushed-back bytes are not written to the file, only made available for subsequent reads, in reverse order.
The number of pushbacks depends on the backend. The standard I/O backend only guarantees a single pushback; this depends on the libc implementation.
For backends that follow the standard behavior, the pushback buffer will be cleared after any seeking or writing; also calls to al_fseek(3) and al_ftell(3) are relative to the number of pushbacks. If a pushback causes the position to become negative, the behavior of al_fseek(3) and al_ftell(3) are undefined.