.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
.\" Portions extracted from /usr/include/dirent.h are:
.\"                    Copyright 1991, 1992 Free Software Foundation
.\"
.\" %%%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
.\"
.TH GETDIRENTRIES 3 2016-03-15 "GNU" "Linux Programmer's Manual"
.SH NAME
getdirentries \- get directory entries in a filesystem-independent format
.SH SYNOPSIS
.B #include <dirent.h>
.PP
.BI "ssize_t getdirentries(int " fd ", char *" buf ", size_t " nbytes
.BI ", off_t *" basep );
.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
.PP
.BR getdirentries ():
    Since glibc 2.19:
        _DEFAULT_SOURCE
    Glibc 2.19 and earlier:
        _BSD_SOURCE || _SVID_SOURCE
.SH DESCRIPTION
Read directory entries from the directory specified by
.I fd
into
.IR buf .
At most
.I nbytes
are read.
Reading starts at offset
.IR *basep ,
and
.I *basep
is updated with the new position after reading.
.SH RETURN VALUE
.BR getdirentries ()
returns the number of bytes read or zero when at the end of the directory.
If an error occurs, \-1 is returned, and
.I errno
is set appropriately.
.SH ERRORS
See the Linux library source code for details.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.TS
allbox;
lb lb lb
l l l.
Interface	Attribute	Value
T{
.BR getdirentries ()
T}	Thread safety	MT-Safe
.TE
.SH CONFORMING TO
Not in POSIX.1.
Present on the BSDs, and a few other systems.
Use
.BR opendir (3)
and
.BR readdir (3)
instead.
.SH SEE ALSO
.BR lseek (2),
.BR open (2)
