.\" Automatically generated by Pandoc 3.6.1 .\" .TH "al_for_each_fs_entry" "3" "" "Allegro reference manual" .SH NAME al_for_each_fs_entry \- Allegro 5 API .SH SYNOPSIS .IP .EX #include \f[B]\f[R] int al_for_each_fs_entry(ALLEGRO_FS_ENTRY *dir, int (*callback)(ALLEGRO_FS_ENTRY *dir, void *extra), void *extra) .EE .SH DESCRIPTION This function takes the ALLEGRO_FS_ENTRY(3) \f[CR]dir\f[R], 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 \f[CR]callback\f[R] once for every filesystem entry in the directory \f[CR]dir\f[R]. .PP The callback \f[CR]callback\f[R] must be of type \f[CR]int callback(ALLEGRO_FS_ENTRY * entry, void * extra)\f[R]. The \f[CR]callback\f[R] will be called with a pointer to an ALLEGRO_FS_ENTRY(3) that matches one file or directory in \f[CR]dir\f[R], and the pointer passed in the \f[CR]extra\f[R] parameter to al_for_each_fs_entry(3). .PP When \f[CR]callback\f[R] returns \f[CR]ALLEGRO_FOR_EACH_FS_ENTRY_STOP\f[R] or \f[CR]ALLEGRO_FOR_EACH_FS_ENTRY_ERROR\f[R], iteration will stop immediately and al_for_each_fs_entry(3) will return the value the \f[CR]callback\f[R] returned. .PP When \f[CR]callback\f[R] returns \f[CR]ALLEGRO_FOR_EACH_FS_ENTRY_OK\f[R] iteration will continue normally, and if the ALLEGRO_FS_ENTRY(3) parameter of \f[CR]callback\f[R] is a directory, al_for_each_fs_entry(3) will call itself on that directory. Therefore the function will recusively descend into that directory. .PP However, when \f[CR]callback\f[R] returns \f[CR]ALLEGRO_FOR_EACH_FS_ENTRY_SKIP\f[R] iteration will continue, but al_for_each_fs_entry(3) will NOT recurse into the ALLEGRO_FS_ENTRY(3) parameter of \f[CR]callback\f[R] even if it is a directory. .PP This function will skip any files or directories named \f[CR].\f[R] or \f[CR]..\f[R] which may exist on certain platforms and may signify the current and the parent directory. The \f[CR]callback\f[R] will not be called for files or directories with such a name. .PP Returns ALLEGRO_FOR_EACH_FS_ENTRY_OK if successful, 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 \f[CR]callback\f[R] return that value. In this case, al_set_errno(3) will not be used. .SH SEE ALSO ALLEGRO_FOR_EACH_FS_ENTRY_RESULT(3) .SH SINCE 5.1.9