OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / original / man3 / scandir.3
diff --git a/original/man3/scandir.3 b/original/man3/scandir.3
deleted file mode 100644 (file)
index cd64409..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-.\" Copyright (C) 1993 David Metcalfe (david@prism.demon.co.uk)
-.\"
-.\" %%%LICENSE_START(VERBATIM)
-.\" Permission is granted to make and distribute verbatim copies of this
-.\" manual provided the copyright notice and this permission notice are
-.\" preserved on all copies.
-.\"
-.\" Permission is granted to copy and distribute modified versions of this
-.\" manual under the conditions for verbatim copying, provided that the
-.\" entire resulting derived work is distributed under the terms of a
-.\" permission notice identical to this one.
-.\"
-.\" Since the Linux kernel and libraries are constantly changing, this
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
-.\" responsibility for errors or omissions, or for damages resulting from
-.\" the use of the information contained herein.  The author(s) may not
-.\" have taken the same level of care in the production of this manual,
-.\" which is licensed free of charge, as they might when working
-.\" professionally.
-.\"
-.\" Formatted or processed versions of this manual, if unaccompanied by
-.\" the source, must acknowledge the copyright and authors of this work.
-.\" %%%LICENSE_END
-.\"
-.\" 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
-.\"
-.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
-.\" This is free documentation; you can redistribute it and/or
-.\" modify it under the terms of the GNU General Public License as
-.\" published by the Free Software Foundation; either version 2 of
-.\" the License, or (at your option) any later version.
-.\"
-.\" The GNU General Public License's references to "object code"
-.\" and "executables" are to be interpreted as the output of any
-.\" document formatting or typesetting system, including
-.\" intermediate and printed output.
-.\"
-.\" This manual is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, see
-.\" <http://www.gnu.org/licenses/>.
-.\" %%%LICENSE_END
-.\"
-.TH SCANDIR 3  2014-05-28 "GNU" "Linux Programmer's Manual"
-.SH NAME
-scandir, scandirat, alphasort, versionsort \- scan
-a directory for matching entries
-.SH SYNOPSIS
-.nf
-.B #include <dirent.h>
-.sp
-.BI "int scandir(const char *" dirp ", struct dirent ***" namelist ,
-.RS
-.BI "int (*" filter ")(const struct dirent *),"
-.BI "int (*" compar ")(const struct dirent **, const struct dirent **));"
-.RE
-.sp
-.BI "int alphasort(const struct dirent **" a ", const struct dirent **" b );
-.sp
-.BI "int versionsort(const struct dirent **" a ", const struct dirent **" b );
-
-.BR "#include <fcntl.h>" "          /* Definition of AT_* constants */"
-.B #include <dirent.h>
-.sp
-.fi
-.BI "int scandirat(int " dirfd ", const char *" dirp ","
-.BI "struct dirent ***" namelist ,
-.nf
-.RS
-.BI "int (*" filter ")(const struct dirent *),"
-.BI "int (*" compar ")(const struct dirent **, const struct dirent **));"
-.RE
-.fi
-.sp
-.in -4n
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.in
-.sp
-.BR scandir (),
-.BR alphasort ():
-.br
-.RS 4
-.PD 0
-.ad b
-_BSD_SOURCE || _SVID_SOURCE
-.br
-|| /* Since glibc 2.10: */
-.RS 4
-(_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700)
-.RE
-.PD
-.RE
-.sp
-.BR versionsort ():
-_GNU_SOURCE
-.sp
-.BR scandirat ():
-_GNU_SOURCE
-.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.
-.LP
-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.
-
-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).
-
-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 ()).
-
-If
-.I dirp
-is absolute, then
-.I dirfd
-is ignored.
-.PP
-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 cause of the error.
-.PP
-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 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.
-.PP
-The following additional errors can occur for
-.BR scandirat ():
-.TP
-.B EBADF
-.I dirfd
-is not a valid file descriptor.
-.TP
-.B ENOTDIR
-.I dirp
-is a relative path and
-.I dirfd
-is a file descriptor referring to a file other than a directory.
-.SH VERSIONS
-.BR versionsort ()
-was added to glibc in version 2.1.
-
-.BR scandirat ()
-was added to glibc in version 2.15.
-.SH CONFORMING TO
-.BR alphasort (),
-.BR scandir ():
-4.3BSD, POSIX.1-2008.
-
-.BR versionsort ()
-and
-.BR scandirat ()
-are GNU extensions.
-.\" .LP
-.\" 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).
-.SH EXAMPLE
-.nf
-#define _SVID_SOURCE
-/* print files in current directory in reverse order */
-#include <dirent.h>
-
-int
-main(void)
-{
-    struct dirent **namelist;
-    int n;
-
-    n = scandir(".", &namelist, NULL, alphasort);
-    if (n < 0)
-        perror("scandir");
-    else {
-        while (n\-\-) {
-            printf("%s\en", namelist[n]\->d_name);
-            free(namelist[n]);
-        }
-        free(namelist);
-    }
-}
-.fi
-.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)
-.SH COLOPHON
-This page is part of release 3.79 of the Linux
-.I man-pages
-project.
-A description of the project,
-information about reporting bugs,
-and the latest version of this page,
-can be found at
-\%http://www.kernel.org/doc/man\-pages/.