diff options
Diffstat (limited to 'tests/cloexec.h')
| -rw-r--r-- | tests/cloexec.h | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/tests/cloexec.h b/tests/cloexec.h new file mode 100644 index 00000000..7a22d775 --- /dev/null +++ b/tests/cloexec.h @@ -0,0 +1,36 @@ +/* cloexec.c - set or clear the close-on-exec descriptor flag + +   Copyright (C) 2004, 2009-2022 Free Software Foundation, Inc. + +   This file is free software: you can redistribute it and/or modify +   it under the terms of the GNU Lesser General Public License as +   published by the Free Software Foundation; either version 2.1 of the +   License, or (at your option) any later version. + +   This file is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +   GNU Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public License +   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */ + +#include <stdbool.h> + +/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, +   or clear the flag if VALUE is false. +   Return 0 on success, or -1 on error with 'errno' set. + +   Note that on MingW, this function does NOT protect DESC from being +   inherited into spawned children.  Instead, either use dup_cloexec +   followed by closing the original DESC, or use interfaces such as +   open or pipe2 that accept flags like O_CLOEXEC to create DESC +   non-inheritable in the first place.  */ + +int set_cloexec_flag (int desc, bool value); + +/* Duplicates a file handle FD, while marking the copy to be closed +   prior to exec or spawn.  Returns -1 and sets errno if FD could not +   be duplicated.  */ + +int dup_cloexec (int fd); | 
