|
|
1.1 root 1: .\" Copyright (c) 1983 Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted provided
5: .\" that: (1) source distributions retain this entire copyright notice and
6: .\" comment, and (2) distributions including binaries display the following
7: .\" acknowledgement: ``This product includes software developed by the
8: .\" University of California, Berkeley and its contributors'' in the
9: .\" documentation or other materials provided with the distribution and in
10: .\" all advertising materials mentioning features or use of this software.
11: .\" Neither the name of the University nor the names of its contributors may
12: .\" be used to endorse or promote products derived from this software without
13: .\" specific prior written permission.
14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17: .\"
18: .\" @(#)scandir.3 6.6 (Berkeley) 6/24/90
19: .\"
20: .TH SCANDIR 3 "June 24, 1990"
21: .UC 5
22: .SH NAME
23: scandir, alphasort \- scan a directory
24: .SH SYNOPSIS
25: .nf
26: .ft B
27: #include <sys/types.h>
28: #include <dirent.h>
29:
30: scandir(dirname, namelist, select, compar)
31: char *dirname;
32: struct direct ***namelist;
33: int (*select)();
34: int (*compar)();
35:
36: alphasort(d1, d2)
37: void *d1, *d2;
38: .ft R
39: .fi
40: .SH DESCRIPTION
41: .I Scandir
42: reads the directory
43: .I dirname
44: and builds an array of pointers to directory
45: entries using
46: .IR malloc (3).
47: It returns the number of entries in the array.
48: A pointer to the array of directory entries is stored in the location
49: referenced by
50: .IR namelist .
51: .PP
52: The
53: .I select
54: parameter is a pointer to a user supplied subroutine which is called by
55: .I scandir
56: to select which entries are to be included in the array.
57: The select routine is passed a
58: pointer to a directory entry and should return a non-zero
59: value if the directory entry is to be included in the array.
60: If
61: .I select
62: is null, then all the directory entries will be included.
63: .PP
64: The
65: .I compar
66: parameter is a pointer to a user supplied subroutine which is passed to
67: .IR qsort (3)
68: to sort the completed array.
69: If this pointer is null, the array is not sorted.
70: .PP
71: .I Alphasort
72: is a routine which can be used for the
73: .I compar
74: parameter to sort the array alphabetically.
75: .PP
76: The memory allocated for the array can be deallocated with
77: .IR free (3),
78: by freeing each pointer in the array and then the array itself.
79: .SH "SEE ALSO"
80: directory(3), malloc(3), qsort(3), dir(5)
81: .SH DIAGNOSTICS
82: Returns \-1 if the directory cannot be opened for reading or if
83: .IR malloc (3)
84: 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.