mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-17 12:41:05 +03:00
Borrow ideas from dup_cloexec and dup3 to implement F_DUPFD and F_DUPFD_CLOEXEC. Support querying the inheritance status via F_GETFD, but for now, no support for changing with F_SETFD. The remaining portions of fcntl fail with EINVAL. * m4/fcntl.m4 (gl_FUNC_FCNTL): Also build fcntl.c on mingw. * lib/fcntl.c (fcntl) <F_DUPFD, F_DUPFD_CLOEXEC, F_GETFD>: Provide replacement for mingw. * modules/fcntl (Description): Update. (Depends-on): Add dup2. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Add witness. * modules/fcntl-h (Makefile.am): Substitute it. * lib/fcntl.in.h (fcntl): Update declaration. (F_DUPFD, F_GETFD): New macros, when needed. * doc/posix-headers/fcntl.texi (fcntl.h): Update documentation. * doc/posix-functions/fcntl.texi (fcntl): Likewise. * tests/test-fcntl.c (check_flags, main): Enhance test for items we now guarantee. Signed-off-by: Eric Blake <ebb9@byu.net>
37 lines
977 B
Plaintext
37 lines
977 B
Plaintext
@node fcntl
|
|
@section @code{fcntl}
|
|
@findex fcntl
|
|
|
|
POSIX specification: @url{http://www.opengroup.org/onlinepubs/9699919799/functions/fcntl.html}
|
|
|
|
Gnulib module: fcntl
|
|
|
|
Portability problems fixed by Gnulib:
|
|
@itemize
|
|
@item
|
|
This function does not support @code{F_DUPFD_CLOEXEC} on some
|
|
platforms:
|
|
MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
|
|
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5,
|
|
BeOS.
|
|
Note that the gnulib replacement code is functional but not atomic.
|
|
|
|
@item
|
|
The @code{F_DUPFD} action of this function does not reject
|
|
out-of-range targets properly on some platforms:
|
|
Cygwin 1.5.x.
|
|
|
|
@item
|
|
This function is missing on some platforms:
|
|
mingw.
|
|
@end itemize
|
|
|
|
Portability problems not fixed by Gnulib:
|
|
@itemize
|
|
@item
|
|
The replacement function does not support @code{F_SETFD},
|
|
@code{F_GETFL}, @code{F_SETFL}, @code{F_GETOWN}, @code{F_SETOWN},
|
|
@code{F_GETLK}, @code{F_SETLK}, and @code{F_SETLKW} on some platforms:
|
|
mingw
|
|
@end itemize
|