doc: Mention reason for replacement on glibc/Linux systems.
[gnulib.git] / doc / posix-functions / fcntl.texi
1 @node fcntl
2 @section @code{fcntl}
3 @findex fcntl
4
5 POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/fcntl.html}
6
7 Gnulib module: fcntl
8
9 Portability problems fixed by Gnulib:
10 @itemize
11 @item
12 This function is missing on some platforms:
13 mingw, MSVC 9.
14
15 @item
16 This function does not support @code{F_DUPFD_CLOEXEC} on some
17 platforms:
18 glibc with Linux kernels before 2.6.24,
19 MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
20 IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, Interix 3.5,
21 BeOS.
22 Note that the gnulib replacement code is functional but not atomic.
23
24 @item
25 The @code{F_DUPFD} action of this function does not reject
26 out-of-range targets properly on some platforms:
27 Cygwin 1.5.x, Haiku.
28
29 @item
30 The @code{F_DUPFD} action of this function mistakenly clears
31 FD_CLOEXEC on the source descriptor on some platforms:
32 Haiku.
33 @end itemize
34
35 Portability problems not fixed by Gnulib:
36 @itemize
37 @item
38 The replacement function does not support @code{F_SETFD},
39 @code{F_GETFL}, @code{F_SETFL}, @code{F_GETOWN}, @code{F_SETOWN},
40 @code{F_GETLK}, @code{F_SETLK}, and @code{F_SETLKW} on some platforms:
41 mingw, MSVC 9.
42 @end itemize