al_for_each_fs_entry man page
al_for_each_fs_entry — Allegro 5 API
#include <allegro5/allegro.h> int al_for_each_fs_entry(ALLEGRO_FS_ENTRY *dir, int (*callback)(ALLEGRO_FS_ENTRY *dir, void *extra), void *extra)
This function takes the ALLEGRO_FS_ENTRY(3)
dir, which should represent a directory, and looks for any other file system entries that are in it. This function will then call the callback function
callback once for every filesystem entry in the directory
callback must be of type
int callback(ALLEGRO_FS_ENTRY * entry, void * extra). The
callback will be called with a pointer to an ALLEGRO_FS_ENTRY(3) that matches one file or directory in
dir, and the pointer passed in the
extra parameter to al_for_each_fs_entry(3).
ALLEGRO_FOR_EACH_FS_ENTRY_ERROR, iteration will stop immediately and al_for_each_fs_entry(3) will return the value the
ALLEGRO_FOR_EACH_FS_ENTRY_OK iteration will continue normally, and if the ALLEGRO_FS_ENTRY(3) parameter of
callback is a directory, al_for_each_fs_entry(3) will call itself on that directory. Therefore the function will recusively descend into that directory.
ALLEGRO_FOR_EACH_FS_ENTRY_SKIP iteration will continue, but al_for_each_fs_entry(3) will NOT recurse into the ALLEGRO_FS_ENTRY(3) parameter of
callback even if it is a directory.
This function will skip any files or directories named
.. which may exist on certain platforms and may signify the current and the parent directory. The
callback will not be called for files or directories with such a name.
Returns ALLEGRO_FOR_EACH_FS_ENTRY_OK if sucessful, or ALLEGRO_FOR_EACH_FS_ENTRY_ERROR if something went wrong in processing the directory. In that case it will use al_set_errno(3) to indicate the type of error which occurred. This function returns ALLEGRO_FOR_EACH_FS_ENTRY_STOP in case iteration was stopped by making
callback return that value. In this case, al_set_errno(3) will not be used.