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