Sortix
Sortix Download Manual Development Source Code News Blog More

os-test > include > fcntl

Legend

Outcomes
Good Good Missing optional Outside libc
Partial Extension Previous posix
Neutral None
Bad Compile error Incompatible Missing header Undeclared Undefined reference Unknown type

Good. A cell is good if the declaration is present in the header and can be linked with libc. This outcome means the test succeeded with the appropriate -D_POSIX_C_SOURCE=202405 or -D_XOPEN_SOURCE=800 feature macros and the standard libraries libc, libpthread, libm, librt, and libxnet.

Missing optional. A cell is missing_optional if the test could not be compiled, but the declaration is optional in POSIX and need not be provided.

Outside libc. A cell is outside_libc if the test could be compiled, but had to be linked with another standard library than the ones prescribed by POSIX: libc, libpthread, libm, librt, and libxnet. This may not conform to POSIX depending on the linking options provided by getconf(1)/confstr(3).

Extension. A cell is extension if the test could not be compiled with the _POSIX_C_SOURCE and _XOPEN_SOURCE feature macros, but it could instead be compiled with other system-specific feature macros that provide the entire API. This outcome means the system header feature macro logic does not support the latest POSIX.1-2024 standard and only receives partial credit. This outcome typically indicates a declaration new to POSIX.1-2024.

Previous posix. A cell is previous_posix if the test could not be compiled with the -D_POSIX_C_SOURCE=202405 or -D_XOPEN_SOURCE=800 feature macros from the POSIX.1-2024 standard, but the test could instead be compiled with the older -D_POSIX_C_SOURCE=200809L or -D_XOPEN_SOURCE=700 feature macros from the older POSIX.1-2008 standard. This outcome means the system header feature macro logic does not support the latest POSIX.1-2024 standard and only receives partial credit. In particular, the header did not check if the value was higher than the supported value, but instead hard-coded the supported values, and failed to be forward compatible with new standard versions.

None. A cell is none if there is no test data result for that operating system.

Compile error. A cell is compile_error if the test could not be compiled and the error message was not recognized as a more precise error test outcome.

Incompatible. A cell is incompatible if the declaration existed in the header, but had a signature that is incompatible with the standardized declaration. This outcome typically indicates a type error in the declaration. Addressing the issue may require an incompatible ABI change or special compatibility logic.

Missing header. A cell is missing_header if the header did not exist.

Undeclared. A cell is undeclared if the header did not contain the declaration.

Undefined reference. A cell is undefined if the test could be compiled, but could not be linked with the standard library.

Unknown type. A cell is unknown_type if the test could not be compiled and failed because a required type was not declared. In some cases, functions fail because the header omitted a required type for a function and instead declared the function in an alternate fashion with an incompatible alias for the type.

§. The § link on the left of each row links to that row.

fcntl

aix
AIX 3 00F9C1964C00
dragonfly
DragonFly 6.4-RELEASE x86_64
freebsd
FreeBSD 14.3-RELEASE-p2 amd64
haiku
Haiku 1 x86_64
hurd
GNU 0.9 i686-AT386
linux
Linux 6.12.38+deb13-amd64 x86_64
macos
Darwin 24.3.0 arm64
minix
Minix 3.4.0 i386
musl
Linux 6.12.34-0-lts x86_64
netbsd
NetBSD 10.1 amd64
omnios
SunOS 5.11 i86pc
openbsd
OpenBSD 7.7 amd64
solaris
SunOS 5.11 sun4v
sortix
Sortix 1.1.0-dev x86_64
§ AT_EACCESS aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: extension openbsd: good solaris: previous_posix sortix: good
§ AT_FDCWD aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: extension openbsd: good solaris: previous_posix sortix: good
§ AT_REMOVEDIR aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: extension openbsd: good solaris: previous_posix sortix: good
§ AT_SYMLINK_FOLLOW aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: extension openbsd: good solaris: previous_posix sortix: good
§ AT_SYMLINK_NOFOLLOW aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: extension openbsd: good solaris: previous_posix sortix: good
§ FD_CLOFORK aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: good hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: good openbsd: undeclared solaris: extension sortix: good
§ F_DUPFD aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ F_DUPFD_CLOEXEC aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ F_DUPFD_CLOFORK aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: good hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: good openbsd: undeclared solaris: good sortix: good
§ F_GETFD aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ F_GETFL aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ F_GETLK aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ F_GETOWN aix: good dragonfly: good freebsd: good haiku: undeclared hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ F_GETOWN_EX aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: extension macos: undeclared minix: undeclared musl: good netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ F_OFD_GETLK aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: extension macos: extension minix: undeclared musl: good netbsd: undeclared omnios: extension openbsd: undeclared solaris: undeclared sortix: undeclared
§ F_OFD_SETLK aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: extension macos: extension minix: undeclared musl: good netbsd: undeclared omnios: extension openbsd: undeclared solaris: undeclared sortix: undeclared
§ F_OFD_SETLKW aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: extension macos: extension minix: undeclared musl: good netbsd: undeclared omnios: extension openbsd: undeclared solaris: undeclared sortix: undeclared
§ F_OWNER_PGRP aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: extension macos: undeclared minix: undeclared musl: extension netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ F_OWNER_PID aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: extension macos: undeclared minix: undeclared musl: extension netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ F_RDLCK aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ F_SETFD aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ F_SETFL aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ F_SETLK aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ F_SETLKW aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ F_SETOWN aix: good dragonfly: good freebsd: good haiku: undeclared hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ F_SETOWN_EX aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: extension macos: undeclared minix: undeclared musl: good netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ F_UNLCK aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ F_WRLCK aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ O_ACCMODE aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_APPEND aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_CLOEXEC aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_CLOFORK aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: good hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: good openbsd: undeclared solaris: good sortix: good
§ O_CREAT aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_DIRECTORY aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_EXCL aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_EXEC aix: good dragonfly: undeclared freebsd: good haiku: undeclared hurd: extension linux: undeclared macos: good minix: undeclared musl: good netbsd: extension omnios: good openbsd: undeclared solaris: good sortix: good
§ O_NOCTTY aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_NOFOLLOW aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: extension minix: extension musl: good netbsd: good omnios: good openbsd: extension solaris: good sortix: good
§ O_NONBLOCK aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_RDONLY aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_RDWR aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_SEARCH aix: good dragonfly: undeclared freebsd: good haiku: undeclared hurd: undeclared linux: undeclared macos: good minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: good sortix: good
§ O_SYNC aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ O_TRUNC aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_TTY_INIT aix: good dragonfly: undeclared freebsd: good haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: good netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: good sortix: good
§ O_WRONLY aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ SEEK_CUR aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ SEEK_END aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ SEEK_SET aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IRGRP aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IROTH aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IRUSR aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IRWXG aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IRWXO aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IRWXU aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_ISGID aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_ISUID aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IWGRP aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IWOTH aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IWUSR aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IXGRP aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IXOTH aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ S_IXUSR aix: good dragonfly: good freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ creat aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ fcntl aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ mode_t aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ off_t aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ open aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ openat aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: undefined musl: good netbsd: good omnios: extension openbsd: good solaris: previous_posix sortix: good
§ pid_t aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ struct-f_owner_ex aix: unknown_type dragonfly: unknown_type freebsd: unknown_type haiku: unknown_type hurd: unknown_type linux: extension macos: unknown_type minix: unknown_type musl: extension netbsd: unknown_type omnios: unknown_type openbsd: unknown_type solaris: unknown_type sortix: unknown_type
§ struct-f_owner_ex-pid aix: unknown_type dragonfly: unknown_type freebsd: unknown_type haiku: unknown_type hurd: unknown_type linux: extension macos: unknown_type minix: unknown_type musl: extension netbsd: unknown_type omnios: unknown_type openbsd: unknown_type solaris: unknown_type sortix: unknown_type
§ struct-f_owner_ex-type aix: unknown_type dragonfly: unknown_type freebsd: unknown_type haiku: unknown_type hurd: unknown_type linux: unknown_type macos: unknown_type minix: unknown_type musl: extension netbsd: unknown_type omnios: unknown_type openbsd: unknown_type solaris: unknown_type sortix: unknown_type
§ struct-flock aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: unknown_type
§ struct-flock-l_len aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: unknown_type
§ struct-flock-l_pid aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: unknown_type
§ struct-flock-l_start aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: unknown_type
§ struct-flock-l_type aix: good dragonfly: good freebsd: good haiku: good hurd: incompatible linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: unknown_type
§ struct-flock-l_whence aix: good dragonfly: good freebsd: good haiku: good hurd: incompatible linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: unknown_type
Optional: ADV
Advisory Information
§ POSIX_FADV_DONTNEED aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
§ POSIX_FADV_NOREUSE aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
§ POSIX_FADV_NORMAL aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
§ POSIX_FADV_RANDOM aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
§ POSIX_FADV_SEQUENTIAL aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
§ POSIX_FADV_WILLNEED aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
§ posix_fadvise aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: undefined musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
§ posix_fallocate aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: undeclared musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
Optional: SIO
Synchronized Input and Output
§ O_DSYNC aix: good dragonfly: undeclared freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ O_RSYNC aix: good dragonfly: undeclared freebsd: undeclared haiku: good hurd: good linux: good macos: undeclared minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
Optional: SPN
Spawn
§ FD_CLOEXEC aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
Optional: XSI
X/Open System Interfaces
§ S_ISVTX aix: good dragonfly: undeclared freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: previous_posix sortix: good
Copyright 2011-2025 Jonas 'Sortie' Termansen and contributors.
Sortix's source code is free software under the ISC license.
#sortix on irc.sortix.org
@sortix_org