diff options
Diffstat (limited to 'man2/readdir.2')
-rw-r--r-- | man2/readdir.2 | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/man2/readdir.2 b/man2/readdir.2 new file mode 100644 index 000000000..1a9b2b6c9 --- /dev/null +++ b/man2/readdir.2 @@ -0,0 +1,115 @@ +.\" 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>: +.\" In 1.3.X, returns only one entry each time; return value is different. +.TH READDIR 2 1995-07-22 "Linux 1.3.6" "Linux Programmer's Manual" +.SH NAME +readdir \- read directory entry +.SH SYNOPSIS +.nf +.B #include <unistd.h> +.B #include <linux/dirent.h> +.B #include <linux/unistd.h> +.sp +.B _syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count); +.sp +.BI "int readdir(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, +which can change, and which is superseded by +.BR getdents (2). +.PP +.B readdir +reads one +.I dirent +structure from the directory +pointed at by +.I fd +into the memory area pointed to by +.IR dirp . +The parameter +.I count +is ignored; at most one dirent structure is read. +.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 this \fIdirent\fP */ + unsigned short d_reclen; /* length of this \fId_name\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 this +.IR dirent . +.I d_reclen +is the size of +.IR d_name, +not counting the null terminator. +.I d_name +is a null-terminated file name. +.PP +.SH "RETURN VALUE" +On success, 1 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" +This system call is Linux specific. +.SH "SEE ALSO" +.BR getdents (2), +.BR readdir (3) |