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(3alleg5) and al_ftell(3alleg5) are relative to the number of pushbacks. If a pushback causes the position to become negative, the behavior of al_fseek(3alleg5) and al_ftell(3alleg5) are undefined.
al_fgetc(3alleg5), al_get_errno(3alleg5)