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 8int fts_compare(const FTSENT *const *, const FTSENT *const *); 9#else 10int fts_compare(const FTSENT **, const FTSENT **); 11#endif 12 13int 14main(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 51int 52#ifdef FTS_COMPARE_CONST 53fts_compare(const FTSENT *const *a, const FTSENT *const *b) 54#else 55fts_compare(const FTSENT **a, const FTSENT **b) 56#endif 57{ 58 return strcmp((*a)->fts_name, (*b)->fts_name); 59} 60