summaryrefslogtreecommitdiffstats
path: root/man2/getdents.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/getdents.2')
-rw-r--r--man2/getdents.2117
1 files changed, 117 insertions, 0 deletions
diff --git a/man2/getdents.2 b/man2/getdents.2
new file mode 100644
index 000000000..d6e0b4b58
--- /dev/null
+++ b/man2/getdents.2
@@ -0,0 +1,117 @@
+.\" Copyright (C) 1995 Andries Brouwer (aeb@cwi.nl)
+.\"
+.\" 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.
+.\"
+.\" Written 11 June 1995 by Andries Brouwer <aeb@cwi.nl>
+.\" Modified 22 July 1995 by Michael Chastain <mec@duracef.shout.net>:
+.\" Derived from 'readdir.2'.
+.\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
+.TH GETDENTS 2 1995-07-22 "Linux 1.3.6" "Linux Programmer's Manual"
+.SH NAME
+getdents \- get directory entries
+.SH SYNOPSIS
+.nf
+.B #include <unistd.h>
+.B #include <linux/types.h>
+.B #include <linux/dirent.h>
+.B #include <linux/unistd.h>
+.sp
+.B _syscall3(int, getdents, uint, fd, struct dirent *, dirp, uint, count);
+.sp
+.BI "int getdents(unsigned int " fd ", struct dirent *" dirp ", unsigned int " count );
+.fi
+.SH DESCRIPTION
+This is not the function you are interested in.
+Look at
+.BR readdir (3)
+for the POSIX conforming C library interface.
+This page documents the bare kernel system call interface.
+.PP
+The system call
+.B getdents
+reads several
+.I dirent
+structures from the directory
+pointed at by
+.I fd
+into the memory area pointed to by
+.IR dirp .
+The parameter
+.I count
+is the size of the memory area.
+.PP
+The
+.I dirent
+structure is declared as follows:
+.PP
+.RS
+.nf
+struct dirent
+{
+ long d_ino; /* inode number */
+ off_t d_off; /* offset to next \fIdirent\fP */
+ unsigned short d_reclen; /* length of this \fIdirent\fP */
+ char d_name [NAME_MAX+1]; /* file name (null-terminated) */
+}
+.fi
+.RE
+.PP
+.I d_ino
+is an inode number.
+.I d_off
+is the distance from the start of the directory to the start of the next
+.IR dirent .
+.I d_reclen
+is the size of this entire
+.IR dirent .
+.I d_name
+is a null-terminated file name.
+.PP
+This call supersedes
+.BR readdir (2).
+.SH "RETURN VALUE"
+On success, the number of bytes read is returned.
+On end of directory, 0 is returned.
+On error, \-1 is returned, and
+.I errno
+is set appropriately.
+.SH ERRORS
+.TP
+.B EBADF
+Invalid file descriptor
+.IR fd .
+.TP
+.B EFAULT
+Argument points outside the calling process's address space.
+.TP
+.B EINVAL
+Result buffer is too small.
+.TP
+.B ENOENT
+No such directory.
+.TP
+.B ENOTDIR
+File descriptor does not refer to a directory.
+.SH "CONFORMING TO"
+SVr4, SVID. SVr4 documents additional ENOLINK, EIO error conditions.
+.SH "SEE ALSO"
+.BR readdir (2),
+.BR readdir (3)