X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=doc%2Fposix-headers%2Ffcntl.texi;h=7366513d0389b8a6071c0dfc73f2ce6e11564702;hb=43593319b31e6b0175b8eec4433bac744959822d;hp=020586c4c5ab7060e7299adc30e1e5ad8a176ac5;hpb=52c658e92436e7ef2d7c7b6f7ee69ae4431b6d7d;p=gnulib.git diff --git a/doc/posix-headers/fcntl.texi b/doc/posix-headers/fcntl.texi index 020586c4c..7366513d0 100644 --- a/doc/posix-headers/fcntl.texi +++ b/doc/posix-headers/fcntl.texi @@ -1,67 +1,93 @@ @node fcntl.h @section @file{fcntl.h} -POSIX specification: @url{http://www.opengroup.org/susv3xbd/fcntl.h.html} +POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html} Gnulib module: fcntl-h Portability problems fixed by Gnulib: @itemize @item -@samp{O_NOCTTY}, @samp{O_DSYNC}, @samp{O_NONBLOCK}, @samp{O_RSYNC}, -@samp{O_SYNC}, @samp{O_DIRECTORY}, @samp{O_NOFOLLOW}, and -@samp{O_TTY_INIT} are not defined on some platforms. +The type @code{pid_t} is not defined on some platforms: +MSVC 9. @item -@samp{O_BINARY}, @samp{O_TEXT} (not specified by POSIX, but essential for -portability to Woe32 platforms) are defined on some platforms but not on -others. +The type @code{mode_t} is not defined on some platforms: +MSVC 9. @item -@samp{O_DIRECT}, @samp{O_NDELAY}, @samp{O_NOATIME}, -and @samp{O_NOLINKS} (not specified by POSIX) are defined -on some platforms but not on others. +@samp{O_CLOEXEC}, @samp{O_DIRECTORY}, @samp{O_DSYNC}, @samp{O_NOCTTY}, +@samp{O_NOFOLLOW}, @samp{O_RSYNC}, @samp{O_SYNC}, +and @samp{O_TTY_INIT} are not defined on some platforms. Gnulib defines +these macros to 0, which is generally safe. @item -@samp{FD_CLOEXEC} is not defined on some platforms: -mingw +@samp{O_NONBLOCK} is not defined on some platforms. If the +@samp{nonblocking} module is in use, gnulib guarantees a working +non-zero value; otherwise, the gnulib replacement is 0. @item -@samp{AT_FDCWD} is defined with a value too large for an int on some -platforms: -Solaris 10 +@samp{O_EXEC} and @samp{O_SEARCH} are not defined on some platforms. +Gnulib defines these macros to @samp{O_RDONLY}, which is typically 0. +The @samp{O_PATH} macro of GNU/Linux is not a suitable substitute, as +fchmod fails with @samp{errno==EBADF} when invoked on a file +descriptor that was opened with @samp{O_PATH}. @item -@samp{AT_FDCWD}, @samp{AT_SYMLINK_NOFOLLOW}, and @samp{AT_REMOVEDIR} -are missing on some platforms. -@end itemize +@samp{O_ACCMODE} is not defined on some platforms: +MSVC 9. + +@item +The @samp{O_ACCMODE} mask mistakenly omits @samp{O_SEARCH} and +@samp{O_EXEC} on some platforms: +Cygwin. + +@item +@samp{O_BINARY}, @samp{O_TEXT} (not specified by POSIX, but essential for +portability to native Windows platforms) are defined on some platforms but +not on others. -Portability problems not fixed by Gnulib: -@itemize @item -@samp{O_CLOEXEC} is not defined on some platforms. The gnulib -replacement is not atomic on these platforms. +@samp{O_DIRECT}, @samp{O_IGNORE_CTTY}, @samp{O_NDELAY}, +@samp{O_NOATIME}, @samp{O_NOLINK}, @samp{O_NOLINKS}, and +@samp{O_NOTRANS} (not specified by POSIX) are defined +on some platforms but not on others. @item -@samp{O_SEARCH} and @samp{O_EXEC} are not defined -on some platforms. +@samp{FD_CLOEXEC}, @samp{F_DUPFD}, and @samp{F_GETFD} are not defined +on some platforms: +mingw, MSVC 9. @item -@samp{F_DUPFD}, @samp{F_DUPFD_CLOEXEC}, @samp{F_GETFD}, and -@samp{F_SETFD} are not defined on some platforms: -mingw +@samp{F_DUPFD_CLOEXEC} is not defined on some platforms: +Mac OS 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. @item -@samp{F_GETFL}, @samp{F_SETFL}, @samp{F_GETLK}, @samp{F_SETLK}, -@samp{F_SETLOKW}, @samp{F_GETOWN}, and @samp{F_SETOWN} are not defined -on some platforms. +@samp{AT_FDCWD}, @samp{AT_EACCESS}, @samp{AT_SYMLINK_NOFOLLOW}, +@samp{AT_SYMLINK_FOLLOW}, and @samp{AT_REMOVEDIR} +are not defined on many platforms: +glibc 2.3.6, Mac OS 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. + +@item +@samp{AT_FDCWD} is defined with a value too large for an @code{int} on some +platforms: +Solaris 11 2011-11. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +@samp{F_SETFD}, @samp{F_GETFL}, @samp{F_SETFL}, @samp{F_GETLK}, +@samp{F_SETLK}, @samp{F_SETLKW}, @samp{F_GETOWN}, and @samp{F_SETOWN} +are not defined on some platforms: +mingw, MSVC 9. @item @samp{POSIX_FADV_DONTNEED}, @samp{POSIX_FADV_NOREUSE}, @samp{POSIX_FADV_NORMAL}, @samp{POSIX_FADV_RANDOM}, @samp{POSIX_FADV_SEQUENTIAL}, and @samp{POSIX_FADV_WILLNEED} are not defined on some platforms. - -@item -@samp{AT_EACCESS} and @samp{AT_SYMLINK_FOLLOW} are missing on some platforms. @end itemize