[LTP] [PATCH 2/2] open: replace getdtablesize with getrlimit
Jinseok Kim
always.starving0@gmail.com
Thu Feb 12 14:22:14 CET 2026
The test currently uses getdtablesize() to determine the maximum
number of file descriptors for the process. This interface is
considered legacy and is not specified by POSIX.
Use getrlimit() instead, which provides a well-defined
and portable way to obtain the per-process file descriptor limit.
Signed-off-by: Jinseok Kim <always.starving0@gmail.com>
---
testcases/kernel/syscalls/open/open04.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/testcases/kernel/syscalls/open/open04.c b/testcases/kernel/syscalls/open/open04.c
index ed5dd27bb..3d8ea2ae8 100644
--- a/testcases/kernel/syscalls/open/open04.c
+++ b/testcases/kernel/syscalls/open/open04.c
@@ -11,6 +11,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <sys/resource.h>
#include "tst_test.h"
#define FNAME "open04"
@@ -23,7 +24,10 @@ static void setup(void)
{
int fd;
- fds_limit = getdtablesize();
+ struct rlimit rlim;
+
+ SAFE_GETRLIMIT(RLIMIT_NOFILE, &rlim);
+ fds_limit = rlim.rlim_cur;
first = SAFE_OPEN(FNAME, O_RDWR | O_CREAT, 0777);
fds = SAFE_MALLOC(sizeof(int) * (fds_limit - first));
--
2.43.0
More information about the ltp
mailing list