|
|
1.1 ! root 1: .TH SCANDIR 3 "19 January 1983" ! 2: .UC 4 ! 3: .SH NAME ! 4: scandir \- scan a directory ! 5: .SH SYNOPSIS ! 6: .nf ! 7: .B #include <sys/types.h> ! 8: .B #include <sys/dir.h> ! 9: .PP ! 10: .B scandir(dirname, namelist, select, compar) ! 11: .B char *dirname; ! 12: .B struct direct *(*namelist[]); ! 13: .B int (*select)(); ! 14: .B int (*compar)(); ! 15: .PP ! 16: .B alphasort(d1, d2) ! 17: .B struct direct **d1, **d2; ! 18: .fi ! 19: .SH DESCRIPTION ! 20: .I Scandir ! 21: reads the directory ! 22: .I dirname ! 23: and builds an array of pointers to directory ! 24: entries using ! 25: .IR malloc (3). ! 26: It returns the number of entries in the array and a pointer to the ! 27: array through ! 28: .IR namelist . ! 29: .PP ! 30: The ! 31: .I select ! 32: parameter is a pointer to a user supplied subroutine which is called by ! 33: .I scandir ! 34: to select which entries are to be included in the array. ! 35: The select routine is passed a ! 36: pointer to a directory entry and should return a non-zero ! 37: value if the directory entry is to be included in the array. ! 38: If ! 39: .I select ! 40: is null, then all the directory entries will be included. ! 41: .PP ! 42: The ! 43: .I compar ! 44: parameter is a pointer to a user supplied subroutine which is passed to ! 45: .IR qsort (3) ! 46: to sort the completed array. If this pointer is null, the array is not sorted. ! 47: .I Alphasort ! 48: is a routine which can be used for the ! 49: .I compar ! 50: parameter to sort the array alphabetically. ! 51: .PP ! 52: The memory allocated for the array can be deallocated with ! 53: .I free ! 54: (see ! 55: .IR malloc (3)) ! 56: by freeing each pointer in the array and the array itself. ! 57: .SH "SEE ALSO" ! 58: directory(3), ! 59: malloc(3), ! 60: qsort(3), ! 61: dir(5) ! 62: .SH DIAGNOSTICS ! 63: Returns \-1 if the directory cannot be opened for reading or if ! 64: .IR malloc (3) ! 65: cannot allocate enough memory to hold all the data structures.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.