fcntl
¶POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-fcntl-3.html
Portability problems fixed by Gnulib:
F_DUPFD_CLOEXEC
on some
platforms:
glibc with Linux kernels before 2.6.24,
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 7.5, AIX 7.1, HP-UX 11,
Solaris 11 2010-11, Cygwin 1.7.1.
Note that the gnulib replacement code is functional but not atomic.
F_DUPFD_CLOEXEC
action of this function does not set the
FD_CLOEXEC
flag on some platforms:
NetBSD 10.0.
F_DUPFD_CLOEXEC
action of this function sets the
FD_CLOEXEC
flag on the wrong file descriptor on some platforms:
Haiku.
F_DUPFD
action of this function does not reject
out-of-range targets properly on some platforms:
AIX 7.1, Cygwin 1.5.x, Haiku.
F_DUPFD
action of this function mistakenly clears
FD_CLOEXEC
on the source descriptor on some platforms:
Haiku.
Portability problems not fixed by Gnulib:
F_SETFD
,
F_GETFL
, F_SETFL
, F_GETOWN
, F_SETOWN
,
F_GETLK
, F_SETLK
, and F_SETLKW
on some platforms:
mingw, MSVC 14.
F_SETLK
and
F_SETLKW
fail with errno
set to different values on
different systems: EINVAL
on OpenIndiana (as suggested by the
POSIX 1003.1-2017 fcntl
specification), ENOLCK
on
GNU/Linux, and EOPNOTSUPP
on FreeBSD.