From: Lennart Poettering Date: Fri, 3 Apr 2015 12:26:22 +0000 (+0200) Subject: CODING_STYLE: mention that dup() should not be used X-Git-Tag: v219.0~194 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=9ff3e22aa93fe461f8971f2468c65dc928fadc9e;ds=sidebyside CODING_STYLE: mention that dup() should not be used --- diff --git a/CODING_STYLE b/CODING_STYLE index 1748dc4bc..feb1a9dd6 100644 --- a/CODING_STYLE +++ b/CODING_STYLE @@ -232,3 +232,10 @@ "return" to exit from the main function of a process. If you fork()ed off a child process, please use _exit() instead of exit(), so that the exit handlers are not run. + +- Please never use dup(). Use fcntl(fd, F_DUPFD_CLOEXEC, 3) + instead. For two reason: first, you want O_CLOEXEC set on the new fd + (see above). Second, dup() will happily duplicate your fd as 0, 1, + 2, i.e. stdin, stdout, stderr, should those fds be closed. Given the + special semantics of those fds, it's probably a good idea to avoid + them. F_DUPFD_CLOEXEC with "3" as parameter avoids them.