Previous: Scanning Directory Content, Up: Accessing Directories
Here is a revised version of the directory lister found above
(see Simple Directory Lister). Using the scandir
function we
can avoid the functions which work directly with the directory contents.
After the call the returned entries are available for direct use.
#include <stdio.h> #include <dirent.h> static int one (struct dirent *unused) { return 1; } int main (void) { struct dirent **eps; int n; n = scandir ("./", &eps, one, alphasort); if (n >= 0) { int cnt; for (cnt = 0; cnt < n; ++cnt) puts (eps[cnt]->d_name); } else perror ("Couldn't open the directory"); return 0; }
Note the simple selector function in this example. Since we want to see
all directory entries we always return 1
.