|
|
1.1 root 1: .\" Copyright (c) 1983 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)scandir.3 6.2 (Berkeley) 9/17/85
6: .\"
7: .TH SCANDIR 3 "September 17, 1985"
8: .UC 5
9: .SH NAME
10: scandir, alphasort \- scan a directory
11: .SH SYNOPSIS
12: .nf
13: .B #include <sys/types.h>
14: .B #include <sys/dir.h>
15: .PP
16: .B scandir(dirname, namelist, select, compar)
17: .B char *dirname;
18: .B struct direct *(*namelist[]);
19: .B int (*select)();
20: .B int (*compar)();
21: .PP
22: .B alphasort(d1, d2)
23: .B struct direct **d1, **d2;
24: .fi
25: .SH DESCRIPTION
26: .I Scandir
27: reads the directory
28: .I dirname
29: and builds an array of pointers to directory
30: entries using
31: .IR malloc (3).
32: It returns the number of entries in the array and a pointer to the
33: array through
34: .IR namelist .
35: .PP
36: The
37: .I select
38: parameter is a pointer to a user supplied subroutine which is called by
39: .I scandir
40: to select which entries are to be included in the array.
41: The select routine is passed a
42: pointer to a directory entry and should return a non-zero
43: value if the directory entry is to be included in the array.
44: If
45: .I select
46: is null, then all the directory entries will be included.
47: .PP
48: The
49: .I compar
50: parameter is a pointer to a user supplied subroutine which is passed to
51: .IR qsort (3)
52: to sort the completed array. If this pointer is null, the array is not sorted.
53: .I Alphasort
54: is a routine which can be used for the
55: .I compar
56: parameter to sort the array alphabetically.
57: .PP
58: The memory allocated for the array can be deallocated with
59: .I free
60: (see
61: .IR malloc (3))
62: by freeing each pointer in the array and the array itself.
63: .SH "SEE ALSO"
64: directory(3),
65: malloc(3),
66: qsort(3),
67: dir(5)
68: .SH DIAGNOSTICS
69: Returns \-1 if the directory cannot be opened for reading or if
70: .IR malloc (3)
71: 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.