Simple Directory Lister Mark II (The GNU C Library)

#### 14.3.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;
    }

    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`.