openat: declare in POSIX headers
[gnulib.git] / doc / posix-headers / fcntl.texi
1 @node fcntl.h
2 @section @file{fcntl.h}
3
4 POSIX specification: @url{http://www.opengroup.org/susv3xbd/fcntl.h.html}
5
6 Gnulib module: fcntl-h
7
8 Portability problems fixed by Gnulib:
9 @itemize
10 @item
11 @samp{O_NOCTTY}, @samp{O_DSYNC}, @samp{O_NONBLOCK}, @samp{O_RSYNC},
12 @samp{O_SYNC}, @samp{O_DIRECTORY}, @samp{O_NOFOLLOW}, and
13 @samp{O_TTY_INIT} are not defined on some platforms.
14
15 @item
16 @samp{O_BINARY}, @samp{O_TEXT} (not specified by POSIX, but essential for
17 portability to Woe32 platforms) are defined on some platforms but not on
18 others.
19
20 @item
21 @samp{O_DIRECT}, @samp{O_NDELAY}, @samp{O_NOATIME},
22 and @samp{O_NOLINKS} (not specified by POSIX) are defined
23 on some platforms but not on others.
24
25 @item
26 @samp{FD_CLOEXEC} is not defined on some platforms:
27 mingw
28
29 @item
30 @samp{AT_FDCWD} is defined with a value too large for an int on some
31 platforms:
32 Solaris 10
33
34 @item
35 @samp{AT_FDCWD}, @samp{AT_SYMLINK_NOFOLLOW}, and @samp{AT_REMOVEDIR}
36 are missing on some platforms.
37 @end itemize
38
39 Portability problems not fixed by Gnulib:
40 @itemize
41 @item
42 @samp{O_CLOEXEC} is not defined on some platforms.  The gnulib
43 replacement is not atomic on these platforms.
44
45 @item
46 @samp{O_SEARCH} and @samp{O_EXEC} are not defined
47 on some platforms.
48
49 @item
50 @samp{F_DUPFD}, @samp{F_DUPFD_CLOEXEC}, @samp{F_GETFD}, and
51 @samp{F_SETFD} are not defined on some platforms:
52 mingw
53
54 @item
55 @samp{F_GETFL}, @samp{F_SETFL}, @samp{F_GETLK}, @samp{F_SETLK},
56 @samp{F_SETLOKW}, @samp{F_GETOWN}, and @samp{F_SETOWN} are not defined
57 on some platforms.
58
59 @item
60 @samp{POSIX_FADV_DONTNEED}, @samp{POSIX_FADV_NOREUSE},
61 @samp{POSIX_FADV_NORMAL}, @samp{POSIX_FADV_RANDOM},
62 @samp{POSIX_FADV_SEQUENTIAL}, and @samp{POSIX_FADV_WILLNEED} are not
63 defined on some platforms.
64
65 @item
66 @samp{AT_EACCESS} and @samp{AT_SYMLINK_FOLLOW} are missing on some platforms.
67 @end itemize