From: Mike Frysinger <[email protected]> Some projects (like udev) are starting to use this.
Signed-off-by: Mike Frysinger <[email protected]> --- include/unistd.h | 6 ++++++ libc/sysdeps/linux/common/Makefile.in | 1 + libc/sysdeps/linux/common/dup3.c | 13 +++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 libc/sysdeps/linux/common/dup3.c diff --git a/include/unistd.h b/include/unistd.h index 1b2fd4d..766fcf3 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -513,6 +513,12 @@ extern int dup (int __fd) __THROW __wur; extern int dup2 (int __fd, int __fd2) __THROW; libc_hidden_proto(dup2) +#ifdef __USE_GNU +/* Duplicate FD to FD2, closing FD2 and making it open on the same + file while setting flags according to FLAGS. */ +extern int dup3 (int __fd, int __fd2, int __flags) __THROW; +#endif + /* NULL-terminated array of "NAME=VALUE" environment variables. */ extern char **__environ; #ifdef __USE_GNU diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in index b39082b..bbffd9a 100644 --- a/libc/sysdeps/linux/common/Makefile.in +++ b/libc/sysdeps/linux/common/Makefile.in @@ -23,6 +23,7 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \ bdflush.c \ capget.c \ capset.c \ + dup3.c \ eventfd.c \ inotify.c \ ioperm.c \ diff --git a/libc/sysdeps/linux/common/dup3.c b/libc/sysdeps/linux/common/dup3.c new file mode 100644 index 0000000..539c071 --- /dev/null +++ b/libc/sysdeps/linux/common/dup3.c @@ -0,0 +1,13 @@ +/* vi: set sw=4 ts=4: */ +/* + * dup2() for uClibc + * + * Copyright (C) 2000-2006 Erik Andersen <[email protected]> + * + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + */ + +#include <sys/syscall.h> +#include <unistd.h> + +_syscall3(int, dup3, int, oldfd, int, newfd, int, flags) -- 1.8.0 _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
