1 #include <sys/types.h>
2 #include <sys/stat.h>
3 #include <fts.h>
4 #include <stdio.h>
5 #include <string.h>
6
7 #ifdef FTS_COMPARE_CONST
8 int fts_compare(const FTSENT *const *, const FTSENT *const *);
9 #else
10 int fts_compare(const FTSENT **, const FTSENT **);
11 #endif
12
13 int
main(void)14 main(void)
15 {
16 const char *argv[2];
17 FTS *ftsp;
18 FTSENT *entry;
19
20 argv[0] = ".";
21 argv[1] = (char *)NULL;
22
23 ftsp = fts_open((char * const *)argv,
24 FTS_PHYSICAL | FTS_NOCHDIR, fts_compare);
25
26 if (ftsp == NULL) {
27 perror("fts_open");
28 return 1;
29 }
30
31 entry = fts_read(ftsp);
32
33 if (entry == NULL) {
34 perror("fts_read");
35 return 1;
36 }
37
38 if (fts_set(ftsp, entry, FTS_SKIP) != 0) {
39 perror("fts_set");
40 return 1;
41 }
42
43 if (fts_close(ftsp) != 0) {
44 perror("fts_close");
45 return 1;
46 }
47
48 return 0;
49 }
50
51 int
52 #ifdef FTS_COMPARE_CONST
fts_compare(const FTSENT * const * a,const FTSENT * const * b)53 fts_compare(const FTSENT *const *a, const FTSENT *const *b)
54 #else
55 fts_compare(const FTSENT **a, const FTSENT **b)
56 #endif
57 {
58 return strcmp((*a)->fts_name, (*b)->fts_name);
59 }
60