7.10 fcntl.h
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html
Gnulib module: fcntl-h
Portability problems fixed by Gnulib:
- The type
pid_t
is not defined on some platforms:
MSVC 9.
- The type
mode_t
is not defined on some platforms:
MSVC 9.
- ‘O_CLOEXEC’, ‘O_DIRECTORY’, ‘O_DSYNC’, ‘O_NOCTTY’,
‘O_NOFOLLOW’, ‘O_RSYNC’, ‘O_SYNC’,
and ‘O_TTY_INIT’ are not defined on some platforms. Gnulib defines
these macros to 0, which is generally safe.
- ‘O_NONBLOCK’ is not defined on some platforms. If the
‘nonblocking’ module is in use, gnulib guarantees a working
non-zero value; otherwise, the gnulib replacement is 0.
- ‘O_EXEC’ and ‘O_SEARCH’ are not defined on some platforms.
Gnulib defines these macros to ‘O_RDONLY’, which is typically 0.
- ‘O_ACCMODE’ is not defined on some platforms:
MSVC 9.
- The ‘O_ACCMODE’ mask mistakenly omits ‘O_SEARCH’ and
‘O_EXEC’ on some platforms:
Cygwin.
- ‘O_BINARY’, ‘O_TEXT’ (not specified by POSIX, but essential for
portability to Woe32 platforms) are defined on some platforms but not on
others.
- ‘O_DIRECT’, ‘O_NDELAY’, ‘O_NOATIME’,
and ‘O_NOLINKS’ (not specified by POSIX) are defined
on some platforms but not on others.
- ‘FD_CLOEXEC’, ‘F_DUPFD’, and ‘F_GETFD’ are not defined
on some platforms:
mingw, MSVC 9.
- ‘F_DUPFD_CLOEXEC’ is not defined on some platforms:
MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5,
BeOS.
- ‘AT_FDCWD’, ‘AT_EACCESS’, ‘AT_SYMLINK_NOFOLLOW’,
‘AT_SYMLINK_FOLLOW’, and ‘AT_REMOVEDIR’
are not defined on many platforms:
glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- ‘AT_FDCWD’ is defined with a value too large for an
int
on some
platforms:
Solaris 11 2010-11.
Portability problems not fixed by Gnulib:
- ‘F_SETFD’, ‘F_GETFL’, ‘F_SETFL’, ‘F_GETLK’,
‘F_SETLK’, ‘F_SETLOKW’, ‘F_GETOWN’, and ‘F_SETOWN’
are not defined on some platforms:
mingw, MSVC 9.
- ‘POSIX_FADV_DONTNEED’, ‘POSIX_FADV_NOREUSE’,
‘POSIX_FADV_NORMAL’, ‘POSIX_FADV_RANDOM’,
‘POSIX_FADV_SEQUENTIAL’, and ‘POSIX_FADV_WILLNEED’ are not
defined on some platforms.