summaryrefslogtreecommitdiffstats
path: root/man2/getdents.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/getdents.2')
-rw-r--r--man2/getdents.230
1 files changed, 15 insertions, 15 deletions
diff --git a/man2/getdents.2 b/man2/getdents.2
index 5dfc5353c..604a6ef6d 100644
--- a/man2/getdents.2
+++ b/man2/getdents.2
@@ -8,7 +8,7 @@
.\" Derived from 'readdir.2'.
.\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
.\"
-.TH getdents 2 2023-02-05 "Linux man-pages 6.03"
+.TH getdents 2 2023-05-03 "Linux man-pages 6.05.01"
.SH NAME
getdents, getdents64 \- get directory entries
.SH LIBRARY
@@ -198,19 +198,19 @@ No such directory.
.B ENOTDIR
File descriptor does not refer to a directory.
.SH STANDARDS
+None.
+.SH HISTORY
SVr4.
.\" SVr4 documents additional ENOLINK, EIO error conditions.
-.SH NOTES
-Library support for
+.TP
.BR getdents64 ()
-was added in glibc 2.30;
+glibc 2.30.
+.SH NOTES
glibc does not provide a wrapper for
.BR getdents ();
call
.BR getdents ()
-(or
-.BR getdents64 ()
-on earlier glibc versions) using
+using
.BR syscall (2).
In that case you will need to define the
.I linux_dirent
@@ -259,16 +259,16 @@ inode# file type d_reclen d_off d_name
#include <stdlib.h>
#include <sys/syscall.h>
#include <unistd.h>
-
+\&
struct linux_dirent {
unsigned long d_ino;
off_t d_off;
unsigned short d_reclen;
char d_name[];
};
-
+\&
#define BUF_SIZE 1024
-
+\&
int
main(int argc, char *argv[])
{
@@ -277,19 +277,19 @@ main(int argc, char *argv[])
char buf[BUF_SIZE];
long nread;
struct linux_dirent *d;
-
+\&
fd = open(argc > 1 ? argv[1] : ".", O_RDONLY | O_DIRECTORY);
if (fd == \-1)
err(EXIT_FAILURE, "open");
-
+\&
for (;;) {
nread = syscall(SYS_getdents, fd, buf, BUF_SIZE);
if (nread == \-1)
err(EXIT_FAILURE, "getdents");
-
+\&
if (nread == 0)
break;
-
+\&
printf("\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- nread=%ld \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\en", nread);
printf("inode# file type d_reclen d_off d_name\en");
for (size_t bpos = 0; bpos < nread;) {
@@ -308,7 +308,7 @@ main(int argc, char *argv[])
bpos += d\->d_reclen;
}
}
-
+\&
exit(EXIT_SUCCESS);
}
.EE