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