1275397Sbapt#include <sys/types.h>
2275397Sbapt#include <sys/stat.h>
3275397Sbapt#include <fts.h>
4275397Sbapt#include <stdio.h>
5316420Sbapt#include <string.h>
6275397Sbapt
7316420Sbapt#ifdef FTS_COMPARE_CONST
8316420Sbaptint fts_compare(const FTSENT *const *, const FTSENT *const *);
9316420Sbapt#else
10316420Sbaptint fts_compare(const FTSENT **, const FTSENT **);
11316420Sbapt#endif
12316420Sbapt
13275397Sbaptint
14275397Sbaptmain(void)
15275397Sbapt{
16275397Sbapt	const char	*argv[2];
17275397Sbapt	FTS		*ftsp;
18275397Sbapt	FTSENT		*entry;
19275397Sbapt
20275397Sbapt	argv[0] = ".";
21275397Sbapt	argv[1] = (char *)NULL;
22275397Sbapt
23275397Sbapt	ftsp = fts_open((char * const *)argv,
24316420Sbapt	    FTS_PHYSICAL | FTS_NOCHDIR, fts_compare);
25275397Sbapt
26275397Sbapt	if (ftsp == NULL) {
27275397Sbapt		perror("fts_open");
28294113Sbapt		return 1;
29275397Sbapt	}
30275397Sbapt
31275397Sbapt	entry = fts_read(ftsp);
32275397Sbapt
33275397Sbapt	if (entry == NULL) {
34275397Sbapt		perror("fts_read");
35294113Sbapt		return 1;
36275397Sbapt	}
37275397Sbapt
38275397Sbapt	if (fts_set(ftsp, entry, FTS_SKIP) != 0) {
39275397Sbapt		perror("fts_set");
40294113Sbapt		return 1;
41275397Sbapt	}
42275397Sbapt
43275397Sbapt	if (fts_close(ftsp) != 0) {
44275397Sbapt		perror("fts_close");
45294113Sbapt		return 1;
46275397Sbapt	}
47275397Sbapt
48294113Sbapt	return 0;
49275397Sbapt}
50316420Sbapt
51316420Sbaptint
52316420Sbapt#ifdef FTS_COMPARE_CONST
53316420Sbaptfts_compare(const FTSENT *const *a, const FTSENT *const *b)
54316420Sbapt#else
55316420Sbaptfts_compare(const FTSENT **a, const FTSENT **b)
56316420Sbapt#endif
57316420Sbapt{
58316420Sbapt	return strcmp((*a)->fts_name, (*b)->fts_name);
59316420Sbapt}
60