musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2024年05月08日 08:50:03 -0400
committerRich Felker <dalias@aerifal.cx>2024年05月08日 08:50:03 -0400
commit1b0d48517f816e98f19111df82f32bfc1608ecec (patch)
treebcc7fe1a3514e97267dbc6398d5e1050a8b7e199 /src
parent2c124e13bd7941fe0b885eecdc5de6f09aacf06a (diff)
downloadmusl-1b0d48517f816e98f19111df82f32bfc1608ecec.tar.gz
implement posix_getdents adopted for next issue of POSIX
this interface was added as the outcome of Austin Group tracker issue 697. no error is specified for unsupported flags, which is probably an oversight. for now, EOPNOTSUPP is used so as not to overload EINVAL.
Diffstat (limited to 'src')
-rw-r--r--src/dirent/posix_getdents.c 11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/dirent/posix_getdents.c b/src/dirent/posix_getdents.c
new file mode 100644
index 00000000..b19e8127
--- /dev/null
+++ b/src/dirent/posix_getdents.c
@@ -0,0 +1,11 @@
+#include <dirent.h>
+#include <limits.h>
+#include <errno.h>
+#include "syscall.h"
+
+int posix_getdents(int fd, void *buf, size_t len, int flags)
+{
+ if (flags) return __syscall_ret(-EOPNOTSUPP);
+ if (len>INT_MAX) len = INT_MAX;
+ return syscall(SYS_getdents, fd, buf, len);
+}
generated by cgit v1.2.1 (git 2.18.0) at 2025年10月07日 07:11:51 +0000

AltStyle によって変換されたページ (->オリジナル) /