127f6a265abda901a9782c14057607df90450cff
[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/onlinepubs/9699919799/basedefs/fcntl.h.html}
5
6 Gnulib module: fcntl-h
7
8 Portability problems fixed by Gnulib:
9 @itemize
10 @item
11 @samp{O_CLOEXEC}, @samp{O_DIRECTORY}, @samp{O_DSYNC}, @samp{O_NOCTTY},
12 @samp{O_NOFOLLOW}, @samp{O_NONBLOCK}, @samp{O_RSYNC}, @samp{O_SYNC},
13 and @samp{O_TTY_INIT} are not defined on some platforms.  Gnulib defines
14 these macros to 0.
15
16 @item
17 @samp{O_EXEC} and @samp{O_SEARCH} are not defined on some platforms.
18 Gnulib defines these macros to @samp{O_RDONLY}, which is typically 0.
19
20 @item
21 @samp{O_BINARY}, @samp{O_TEXT} (not specified by POSIX, but essential for
22 portability to Woe32 platforms) are defined on some platforms but not on
23 others.
24
25 @item
26 @samp{O_DIRECT}, @samp{O_NDELAY}, @samp{O_NOATIME},
27 and @samp{O_NOLINKS} (not specified by POSIX) are defined
28 on some platforms but not on others.
29
30 @item
31 @samp{FD_CLOEXEC}, @samp{F_DUPFD}, and @samp{F_GETFD} are not defined
32 on some platforms:
33 mingw.
34
35 @item
36 @samp{F_DUPFD_CLOEXEC} is not defined on some platforms:
37 MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
38 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5,
39 BeOS.
40
41 @item
42 @samp{AT_FDCWD}, @samp{AT_EACCESS}, @samp{AT_SYMLINK_NOFOLLOW},
43 @samp{AT_SYMLINK_FOLLOW}, and @samp{AT_REMOVEDIR}
44 are not defined on many platforms:
45 glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
46 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
47
48 @item
49 @samp{AT_FDCWD} is defined with a value too large for an @code{int} on some
50 platforms:
51 Solaris 10.
52 @end itemize
53
54 Portability problems not fixed by Gnulib:
55 @itemize
56 @item
57 @samp{F_SETFD}, @samp{F_GETFL}, @samp{F_SETFL}, @samp{F_GETLK},
58 @samp{F_SETLK}, @samp{F_SETLOKW}, @samp{F_GETOWN}, and @samp{F_SETOWN}
59 are not defined on some platforms:
60 mingw.
61
62 @item
63 @samp{POSIX_FADV_DONTNEED}, @samp{POSIX_FADV_NOREUSE},
64 @samp{POSIX_FADV_NORMAL}, @samp{POSIX_FADV_RANDOM},
65 @samp{POSIX_FADV_SEQUENTIAL}, and @samp{POSIX_FADV_WILLNEED} are not
66 defined on some platforms.
67 @end itemize