ch06-sortdir.c
来自「linux编程精髓 源代码」· C语言 代码 · 共 66 行
C
66 行
/* ch06-sortdir.c --- Demonstrate scandir(), alphasort(). */#include <stdio.h> /* for printf() etc. */#include <errno.h> /* for errno */#include <sys/types.h> /* for system types */#include <dirent.h> /* for directory functions */char *myname;int process(const char *dir);/* main --- loop over directory arguments */int main(int argc, char **argv){ int i; int errs = 0; myname = argv[0]; if (argc == 1) errs = process("."); /* default to current directory */ else for (i = 1; i < argc; i++) errs += process(argv[i]); return (errs != 0);}/* nodots --- ignore dot files, for use by scandir() */intnodots(const struct dirent *dp){ return (dp->d_name[0] != '.');}/* * process --- do something with the directory, in this case, * print inode/name pairs on standard output. * Return 0 if all OK, 1 otherwise. */intprocess(const char *dir){ DIR *dp; struct dirent **entries; int nents, i; nents = scandir(dir, & entries, nodots, alphasort); if (nents < 0) { fprintf(stderr, "%s: scandir failed: %s\n", myname, strerror(errno)); return 1; } for (i = 0; i < nents; i++) { printf("%8ld %s\n", entries[i]->d_ino, entries[i]->d_name); free(entries[i]); } free(entries); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?