From: Alexander Kuleshov Date: Sat, 2 Jul 2016 17:38:47 +0000 (+0600) Subject: basic/fd-util: introduce stdio_unset_cloexec() function X-Git-Tag: v231.3~81 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=4617cac05930a787af45714682402edf7dac62a9;p=elogind.git basic/fd-util: introduce stdio_unset_cloexec() function There are some places in the elogind which are use the same pattern: fd_cloexec(STDIN_FILENO, false); fd_cloexec(STDOUT_FILENO, false); fd_cloexec(STDERR_FILENO, false); to unset CLOEXEC for standard file descriptors. This patch introduces the stdio_unset_cloexec() function to hide this and make code cleaner. --- diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c index 8e4cfe3fe..3eb3324b5 100644 --- a/src/basic/fd-util.c +++ b/src/basic/fd-util.c @@ -186,6 +186,12 @@ int fd_cloexec(int fd, bool cloexec) { return 0; } +void stdio_unset_cloexec(void) { + fd_cloexec(STDIN_FILENO, false); + fd_cloexec(STDOUT_FILENO, false); + fd_cloexec(STDERR_FILENO, false); +} + _pure_ static bool fd_in_set(int fd, const int fdset[], unsigned n_fdset) { unsigned i; diff --git a/src/basic/fd-util.h b/src/basic/fd-util.h index 522ea6894..fe92b76c4 100644 --- a/src/basic/fd-util.h +++ b/src/basic/fd-util.h @@ -65,6 +65,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(DIR*, closedir); int fd_nonblock(int fd, bool nonblock); int fd_cloexec(int fd, bool cloexec); +void stdio_unset_cloexec(void); int close_all_fds(const int except[], unsigned n_except);