Next: , Previous: , Up: Accessing Directories   [Contents][Index]

14.2.7 Simple Program to List a Directory, Mark II

Here is a revised version of the directory lister found above (see Simple Program to List a Directory). 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 (const struct dirent *unused)
  return 1;

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);
    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.