diff options
-rw-r--r-- | config/header.mk | 1 | ||||
-rw-r--r-- | config/pipe2.c | 10 | ||||
-rw-r--r-- | src/bfstd.c | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/config/header.mk b/config/header.mk index ec53dfa..55657f8 100644 --- a/config/header.mk +++ b/config/header.mk @@ -16,6 +16,7 @@ HEADERS := \ ${GEN}/getdents64-syscall.h \ ${GEN}/getprogname.h \ ${GEN}/getprogname-gnu.h \ + ${GEN}/pipe2.h \ ${GEN}/posix-spawn-addfchdir.h \ ${GEN}/posix-spawn-addfchdir-np.h \ ${GEN}/statx.h \ diff --git a/config/pipe2.c b/config/pipe2.c new file mode 100644 index 0000000..4cb43b5 --- /dev/null +++ b/config/pipe2.c @@ -0,0 +1,10 @@ +// Copyright © Tavian Barnes <tavianator@tavianator.com> +// SPDX-License-Identifier: 0BSD + +#include <fcntl.h> +#include <unistd.h> + +int main(void) { + int fds[2]; + return pipe2(fds, O_CLOEXEC); +} diff --git a/src/bfstd.c b/src/bfstd.c index 3eff024..e2c2b97 100644 --- a/src/bfstd.c +++ b/src/bfstd.c @@ -489,7 +489,7 @@ int dup_cloexec(int fd) { } int pipe_cloexec(int pipefd[2]) { -#if __linux__ || (BSD && !__APPLE__) +#if BFS_HAS_PIPE2 return pipe2(pipefd, O_CLOEXEC); #else if (pipe(pipefd) != 0) { |