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 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 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