程式語言 - GNU - C/C++ - Scan DIR



參考資訊
https://man7.org/linux/man-pages/man3/scandir.3.html

相較於readdir(),scandir()提供排序功能,使用者可以使用alphasort或者自定義的排序callback

main.c

#define _DEFAULT_SOURCE
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char **argv)
{
    int c = 0;
    int n = 0;
    struct dirent **namelist = NULL;

    n = scandir("/tmp", &namelist, NULL, alphasort);
    if (n == -1) {
        return -1;
    }

    for (c = 0; c < n; c++) {
        printf("%s\n", namelist[c]->d_name);
        free(namelist[c]);
    }
    free(namelist);
    return 0;
}