123456789101112131415161718192021222324252627282930313233343536373839 |
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <dirent.h>
- #define _DTIFY(DT) [DT] #DT
- const char * const types[] = {
- _DTIFY(DT_UNKNOWN),
- _DTIFY(DT_FIFO),
- _DTIFY(DT_CHR),
- _DTIFY(DT_DIR),
- _DTIFY(DT_BLK),
- _DTIFY(DT_REG),
- _DTIFY(DT_LNK),
- _DTIFY(DT_SOCK),
- _DTIFY(DT_WHT)
- };
- int main(int argc, char *argv[])
- {
- DIR *dirh;
- struct dirent *de;
- const char *mydir = (argc == 1 ? "/" : argv[1]);
- if ((dirh = opendir(mydir)) == NULL) {
- perror("opendir");
- return 1;
- }
- printf("readdir() says:\n");
- while ((de = readdir(dirh)) != NULL)
- printf("\tdir entry %s: %s\n", types[de->d_type], de->d_name);
- closedir(dirh);
- return 0;
- }
|