From cf1baddb670accbb44526a32daf8648bc3fec023 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Tue, 29 Mar 2022 22:47:06 +0200 Subject: [PATCH] LibC: Implement `getdtablesize()` --- Userland/Libraries/LibC/unistd.cpp | 9 +++++++++ Userland/Libraries/LibC/unistd.h | 1 + 2 files changed, 10 insertions(+) diff --git a/Userland/Libraries/LibC/unistd.cpp b/Userland/Libraries/LibC/unistd.cpp index 398c44e8f90..386de582609 100644 --- a/Userland/Libraries/LibC/unistd.cpp +++ b/Userland/Libraries/LibC/unistd.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -980,4 +981,12 @@ int chroot(const char* path) dbgln("FIXME: chroot(\"{}\")", path); return -1; } + +// https://pubs.opengroup.org/onlinepubs/7908799/xsh/getdtablesize.html +int getdtablesize() +{ + rlimit dtablesize; + int rc = getrlimit(RLIMIT_NOFILE, &dtablesize); + __RETURN_WITH_ERRNO(rc, dtablesize.rlim_cur, rc); +} } diff --git a/Userland/Libraries/LibC/unistd.h b/Userland/Libraries/LibC/unistd.h index 24f6c48e08a..33009811691 100644 --- a/Userland/Libraries/LibC/unistd.h +++ b/Userland/Libraries/LibC/unistd.h @@ -118,6 +118,7 @@ int unveil(const char* path, const char* permissions); char* getpass(const char* prompt); int pause(void); int chroot(const char*); +int getdtablesize(void); enum { _PC_NAME_MAX,