1al_for_each_fs_entry(3) al_for_each_fs_entry(3)
2
3
4
6 al_for_each_fs_entry - Allegro 5 API
7
9 #include <allegro5/allegro.h>
10
11 int al_for_each_fs_entry(ALLEGRO_FS_ENTRY *dir,
12 int (*callback)(ALLEGRO_FS_ENTRY *dir, void *extra),
13 void *extra)
14
16 This function takes the ALLEGRO_FS_ENTRY(3) dir, which should represent
17 a directory, and looks for any other file system entries that are in
18 it. This function will then call the callback function callback once
19 for every filesystem entry in the directory dir.
20
21 The callback callback must be of type int callback(ALLE‐
22 GRO_FS_ENTRY * entry, void * extra). The callback will be called with
23 a pointer to an ALLEGRO_FS_ENTRY(3) that matches one file or directory
24 in dir, and the pointer passed in the extra parameter to
25 al_for_each_fs_entry(3).
26
27 When callback returns ALLEGRO_FOR_EACH_FS_ENTRY_STOP or ALLE‐
28 GRO_FOR_EACH_FS_ENTRY_ERROR, iteration will stop immediately and
29 al_for_each_fs_entry(3) will return the value the callback returned.
30
31 When callback returns ALLEGRO_FOR_EACH_FS_ENTRY_OK iteration will con‐
32 tinue normally, and if the ALLEGRO_FS_ENTRY(3) parameter of callback is
33 a directory, al_for_each_fs_entry(3) will call itself on that direc‐
34 tory. Therefore the function will recusively descend into that direc‐
35 tory.
36
37 However, when callback returns ALLEGRO_FOR_EACH_FS_ENTRY_SKIP iteration
38 will continue, but al_for_each_fs_entry(3) will NOT recurse into the
39 ALLEGRO_FS_ENTRY(3) parameter of callback even if it is a directory.
40
41 This function will skip any files or directories named . or .. which
42 may exist on certain platforms and may signify the current and the par‐
43 ent directory. The callback will not be called for files or directo‐
44 ries with such a name.
45
46 Returns ALLEGRO_FOR_EACH_FS_ENTRY_OK if sucessful, or ALLE‐
47 GRO_FOR_EACH_FS_ENTRY_ERROR if something went wrong in processing the
48 directory. In that case it will use al_set_errno(3) to indicate the
49 type of error which occurred. This function returns ALLE‐
50 GRO_FOR_EACH_FS_ENTRY_STOP in case iteration was stopped by making
51 callback return that value. In this case, al_set_errno(3) will not be
52 used.
53
55 ALLEGRO_FOR_EACH_FS_ENTRY_RESULT(3)
56
58 5.1.9
59
60
61
62Allegro reference manual al_for_each_fs_entry(3)