From e61ff51e6755b88618641e5fa850184b11c16ebd Mon Sep 17 00:00:00 2001 From: dongjiuzhu1 Date: Tue, 24 Oct 2023 13:40:07 +0800 Subject: [PATCH] system/popen: remove O_CLOEXEC if mode exinclude 'e' refs: https://man7.org/linux/man-pages/man3/popen.3.html Signed-off-by: dongjiuzhu1 --- system/popen/popen.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/system/popen/popen.c b/system/popen/popen.c index 05abcd20d..254f86ae6 100644 --- a/system/popen/popen.c +++ b/system/popen/popen.c @@ -320,6 +320,11 @@ FILE *popen(FAR const char *command, FAR const char *mode) posix_spawn_file_actions_destroy(&file_actions); posix_spawnattr_destroy(&attr); + if (strchr(mode, 'e') == NULL) + { + fcntl(retfd, F_SETFD, 0); + } + /* Finale and return input input/output stream */ memcpy(&container->copy, container->original, sizeof(FILE));