diff options
author | Rich Felker <dalias@aerifal.cx> | 2024-05-08 08:50:03 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2024-05-08 08:50:03 -0400 |
commit | 1b0d48517f816e98f19111df82f32bfc1608ecec (patch) | |
tree | bcc7fe1a3514e97267dbc6398d5e1050a8b7e199 /src/dirent | |
parent | 2c124e13bd7941fe0b885eecdc5de6f09aacf06a (diff) | |
download | musl-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/dirent')
-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); +} |