summaryrefslogtreecommitdiffstats
path: root/man3/scandir.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/scandir.3')
-rw-r--r--man3/scandir.3310
1 files changed, 0 insertions, 310 deletions
diff --git a/man3/scandir.3 b/man3/scandir.3
deleted file mode 100644
index eeab256..0000000
--- a/man3/scandir.3
+++ /dev/null
@@ -1,310 +0,0 @@
-'\" t
-.\" Copyright (C) 1993 David Metcalfe (david@prism.demon.co.uk)
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.\" References consulted:
-.\" Linux libc source code
-.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
-.\" 386BSD man pages
-.\" Modified Sat Jul 24 18:26:16 1993 by Rik Faith (faith@cs.unc.edu)
-.\" Modified Thu Apr 11 17:11:33 1996 by Andries Brouwer (aeb@cwi.nl):
-.\" Corrected type of compar routines, as suggested by
-.\" Miguel Barreiro (enano@avalon.yaix.es). Added example.
-.\" Modified Sun Sep 24 20:15:46 2000 by aeb, following Petter Reinholdtsen.
-.\" Modified 2001-12-26 by aeb, following Joey. Added versionsort.
-.\"
-.\" The pieces on scandirat(3) were copyright and licensed as follows.
-.\"
-.\" Copyright (c) 2012, Mark R. Bannister <cambridge@users.sourceforge.net>
-.\" based on text in mkfifoat.3 Copyright (c) 2006, Michael Kerrisk
-.\"
-.\" SPDX-License-Identifier: GPL-2.0-or-later
-.\"
-.TH scandir 3 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-scandir, scandirat, alphasort, versionsort \- scan
-a directory for matching entries
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.B #include <dirent.h>
-.P
-.BI "int scandir(const char *restrict " dirp ,
-.BI " struct dirent ***restrict " namelist ,
-.BI " int (*" filter ")(const struct dirent *),"
-.BI " int (*" compar ")(const struct dirent **,"
-.B " const struct dirent **));"
-.P
-.BI "int alphasort(const struct dirent **" a ", const struct dirent **" b );
-.BI "int versionsort(const struct dirent **" a ", const struct dirent **" b );
-.P
-.BR "#include <fcntl.h>" " /* Definition of AT_* constants */"
-.B #include <dirent.h>
-.P
-.BI "int scandirat(int " dirfd ", const char *restrict " dirp ,
-.BI " struct dirent ***restrict " namelist ,
-.BI " int (*" filter ")(const struct dirent *),"
-.BI " int (*" compar ")(const struct dirent **,"
-.B " const struct dirent **));"
-.fi
-.P
-.RS -4
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.RE
-.P
-.BR scandir (),
-.BR alphasort ():
-.nf
- /* Since glibc 2.10: */ _POSIX_C_SOURCE >= 200809L
- || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
-.fi
-.P
-.BR versionsort ():
-.nf
- _GNU_SOURCE
-.fi
-.P
-.BR scandirat ():
-.nf
- _GNU_SOURCE
-.fi
-.SH DESCRIPTION
-The
-.BR scandir ()
-function scans the directory \fIdirp\fP, calling
-\fIfilter\fP() on each directory entry.
-Entries for which
-\fIfilter\fP() returns nonzero are stored in strings allocated via
-.BR malloc (3),
-sorted using
-.BR qsort (3)
-with the comparison
-function \fIcompar\fP(), and collected in array \fInamelist\fP
-which is allocated via
-.BR malloc (3).
-If \fIfilter\fP is NULL, all entries are selected.
-.P
-The
-.BR alphasort ()
-and
-.BR versionsort ()
-functions can be used as the comparison function
-.IR compar ().
-The former sorts directory entries using
-.BR strcoll (3),
-the latter using
-.BR strverscmp (3)
-on the strings \fI(*a)\->d_name\fP and \fI(*b)\->d_name\fP.
-.SS scandirat()
-The
-.BR scandirat ()
-function operates in exactly the same way as
-.BR scandir (),
-except for the differences described here.
-.P
-If the pathname given in
-.I dirp
-is relative, then it is interpreted relative to the directory
-referred to by the file descriptor
-.I dirfd
-(rather than relative to the current working directory of
-the calling process, as is done by
-.BR scandir ()
-for a relative pathname).
-.P
-If
-.I dirp
-is relative and
-.I dirfd
-is the special value
-.BR AT_FDCWD ,
-then
-.I dirp
-is interpreted relative to the current working
-directory of the calling process (like
-.BR scandir ()).
-.P
-If
-.I dirp
-is absolute, then
-.I dirfd
-is ignored.
-.P
-See
-.BR openat (2)
-for an explanation of the need for
-.BR scandirat ().
-.SH RETURN VALUE
-The
-.BR scandir ()
-function returns the number of directory entries
-selected.
-On error, \-1 is returned, with
-.I errno
-set to indicate the error.
-.P
-The
-.BR alphasort ()
-and
-.BR versionsort ()
-functions return an integer less than, equal to,
-or greater than zero if the first argument is considered to be
-respectively less than, equal to, or greater than the second.
-.SH ERRORS
-.TP
-.B EBADF
-.RB ( scandirat ())
-.I dirp
-is relative but
-.I dirfd
-is neither
-.B AT_FDCWD
-nor a valid file descriptor.
-.TP
-.B ENOENT
-The path in \fIdirp\fR does not exist.
-.TP
-.B ENOMEM
-Insufficient memory to complete the operation.
-.TP
-.B ENOTDIR
-The path in \fIdirp\fR is not a directory.
-.TP
-.B ENOTDIR
-.RB ( scandirat ())
-.I dirp
-is a relative pathname and
-.I dirfd
-is a file descriptor referring to a file other than a directory.
-.SH ATTRIBUTES
-For an explanation of the terms used in this section, see
-.BR attributes (7).
-.TS
-allbox;
-lbx lb lb
-l l l.
-Interface Attribute Value
-T{
-.na
-.nh
-.BR scandir (),
-.BR scandirat ()
-T} Thread safety MT-Safe
-T{
-.na
-.nh
-.BR alphasort (),
-.BR versionsort ()
-T} Thread safety MT-Safe locale
-.TE
-.SH STANDARDS
-.TP
-.BR alphasort ()
-.TQ
-.BR scandir ()
-POSIX.1-2008.
-.TP
-.BR versionsort ()
-.TQ
-.BR scandirat ()
-GNU.
-.SH HISTORY
-.TP
-.BR alphasort ()
-.TQ
-.BR scandir ()
-4.3BSD, POSIX.1-2008.
-.TP
-.BR versionsort ()
-glibc 2.1.
-.TP
-.BR scandirat ()
-glibc 2.15.
-.\" .P
-.\" The functions
-.\" .BR scandir ()
-.\" and
-.\" .BR alphasort ()
-.\" are from 4.3BSD, and have been available under Linux since libc4.
-.\" Libc4 and libc5 use the more precise prototype
-.\" .sp
-.\" .nf
-.\" int alphasort(const struct dirent ** a,
-.\" const struct dirent **b);
-.\" .fi
-.\" .sp
-.\" but glibc 2.0 returns to the imprecise BSD prototype.
-.SH NOTES
-Since glibc 2.1,
-.BR alphasort ()
-calls
-.BR strcoll (3);
-earlier it used
-.BR strcmp (3).
-.P
-Before glibc 2.10, the two arguments of
-.BR alphasort ()
-and
-.BR versionsort ()
-were typed as
-.IR "const void\ *" .
-When
-.BR alphasort ()
-was standardized in POSIX.1-2008,
-the argument type was specified as the type-safe
-.IR "const struct dirent\ **",
-and glibc 2.10 changed the definition of
-.BR alphasort ()
-(and the nonstandard
-.BR versionsort ())
-to match the standard.
-.SH EXAMPLES
-The program below prints a list of the files in the current directory
-in reverse order.
-.\"
-.SS Program source
-\&
-.\" SRC BEGIN (scandir.c)
-.EX
-#define _DEFAULT_SOURCE
-#include <dirent.h>
-#include <stdio.h>
-#include <stdlib.h>
-\&
-int
-main(void)
-{
- struct dirent **namelist;
- int n;
-\&
- n = scandir(".", &namelist, NULL, alphasort);
- if (n == \-1) {
- perror("scandir");
- exit(EXIT_FAILURE);
- }
-\&
- while (n\-\-) {
- printf("%s\en", namelist[n]\->d_name);
- free(namelist[n]);
- }
- free(namelist);
-\&
- exit(EXIT_SUCCESS);
-}
-.EE
-.\" SRC END
-.SH SEE ALSO
-.BR closedir (3),
-.BR fnmatch (3),
-.BR opendir (3),
-.BR readdir (3),
-.BR rewinddir (3),
-.BR seekdir (3),
-.BR strcmp (3),
-.BR strcoll (3),
-.BR strverscmp (3),
-.BR telldir (3)