Allegro 5 api
#include <allegro5/allegro.h> ALLEGRO_FILE *al_create_file_handle(const ALLEGRO_FILE_INTERFACE *drv, void *userdata)
Creates an empty, opened file handle with some abstract user data. This allows custom interfaces to extend the ALLEGRO_FILE(3alleg5) struct with their own data. You should close the handle with the standard al_fclose(3alleg5) function when you are finished with it.
al_fopen(3alleg5), al_fclose(3alleg5), al_set_new_file_interface(3alleg5)