From a58b0f50d490c8207e7d3b3b193e4f46f55f5b86 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 2 Nov 2024 12:28:08 +0000 Subject: [PATCH] ext/posix: adding POSIX_SC_OPEN_MAX constant. returns the number of file descriptors that a process can handle. e.g. useful after pcntl_fork() to close all the file descriptors up to that boundary. --- ext/posix/posix.stub.php | 7 +++++++ ext/posix/posix_arginfo.h | 5 ++++- ext/posix/tests/posix_sysconf.phpt | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ext/posix/posix.stub.php b/ext/posix/posix.stub.php index d34415107a07f..2ee9cdbc31473 100644 --- a/ext/posix/posix.stub.php +++ b/ext/posix/posix.stub.php @@ -303,6 +303,13 @@ */ const POSIX_PC_SYMLINK_MAX = UNKNOWN; #endif +#ifdef _SC_OPEN_MAX +/** + * @var int + * @cvalue _SC_OPEN_MAX + */ +const POSIX_SC_OPEN_MAX = UNKNOWN; +#endif function posix_kill(int $process_id, int $signal): bool {} diff --git a/ext/posix/posix_arginfo.h b/ext/posix/posix_arginfo.h index 664d822db9eda..dceac3eabc995 100644 --- a/ext/posix/posix_arginfo.h +++ b/ext/posix/posix_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 82caf527a8ec686bc450e5d782bb79275d5a13e3 */ + * Stub hash: 25e0aa769d72988ebca07fff96c8ed1fcb6b7d5e */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_kill, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, process_id, IS_LONG, 0) @@ -461,4 +461,7 @@ static void register_posix_symbols(int module_number) #if defined(_PC_SYMLINK_MAX) REGISTER_LONG_CONSTANT("POSIX_PC_SYMLINK_MAX", _PC_SYMLINK_MAX, CONST_PERSISTENT); #endif +#if defined(_SC_OPEN_MAX) + REGISTER_LONG_CONSTANT("POSIX_SC_OPEN_MAX", _SC_OPEN_MAX, CONST_PERSISTENT); +#endif } diff --git a/ext/posix/tests/posix_sysconf.phpt b/ext/posix/tests/posix_sysconf.phpt index 6acebe1f0e0f3..026aecacc4ef8 100644 --- a/ext/posix/tests/posix_sysconf.phpt +++ b/ext/posix/tests/posix_sysconf.phpt @@ -7,8 +7,10 @@ posix var_dump(posix_sysconf(-1)); var_dump(posix_errno() != 0); var_dump(posix_sysconf(POSIX_SC_NPROCESSORS_ONLN)); +var_dump(posix_sysconf(POSIX_SC_OPEN_MAX) >= 256); ?> --EXPECTF-- int(-1) bool(false) int(%d) +bool(true)