os-test > include > stdio
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.
stdio
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 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
§ BUFSIZ | 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 |
§ EOF | 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 |
§ FILE | 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 |
§ FILENAME_MAX | 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 |
§ FOPEN_MAX | 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 |
§ L_ctermid | 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 |
§ NULL | 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: good | haiku: good | hurd: good | linux: good | macos: good | minix: good | musl: good | netbsd: good | omnios: good | openbsd: good | solaris: good | sortix: good |
§ SEEK_END | 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_SET | 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 |
§ _IOFBF | 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 |
§ _IOLBF | 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 |
§ _IONBF | 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 |
§ asprintf | aix: undeclared | dragonfly: extension | freebsd: extension | haiku: good | hurd: extension | linux: extension | macos: extension | minix: extension | musl: extension | netbsd: extension | omnios: extension | openbsd: good | solaris: extension | sortix: extension |
§ clearerr | 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 |
§ ctermid | 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 |
§ dprintf | 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: previous_posix | sortix: good |
§ fclose | 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 |
§ fdopen | 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 |
§ feof | 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 |
§ ferror | 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 |
§ fflush | 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 |
§ fgetc | 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 |
§ fgetpos | 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 |
§ fgets | 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 |
§ fileno | 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 |
§ flockfile | 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 |
§ fmemopen | 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: previous_posix | sortix: good |
§ fopen | 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 |
§ fpos_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 |
§ fprintf | 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 |
§ fputc | 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 |
§ fputs | 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 |
§ fread | 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 |
§ freopen | 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 |
§ fscanf | 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 |
§ fseek | 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 |
§ fseeko | 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: previous_posix | sortix: good |
§ fsetpos | 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 |
§ ftell | 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 |
§ ftello | 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: previous_posix | sortix: good |
§ ftrylockfile | 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 |
§ funlockfile | 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 |
§ fwrite | 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 |
§ getc | 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 |
§ getc_unlocked | 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 |
§ getchar | 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 |
§ getchar_unlocked | 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 |
§ getdelim | 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 |
§ getline | 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 |
§ 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: previous_posix | sortix: good |
§ open_memstream | 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: previous_posix | sortix: good |
§ pclose | 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 |
§ perror | 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 |
§ popen | 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 |
§ printf | 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 |
§ putc | 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 |
§ putc_unlocked | 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 |
§ putchar | 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 |
§ putchar_unlocked | 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 |
§ puts | 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 |
§ remove | 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 |
§ rename | 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 |
§ renameat | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: undeclared | musl: good | netbsd: undeclared | omnios: undeclared | openbsd: good | solaris: previous_posix | sortix: good |
§ rewind | 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 |
§ scanf | 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 |
§ setbuf | 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 |
§ setvbuf | 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 |
§ size_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 |
§ snprintf | 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 |
§ sprintf | 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 |
§ sscanf | 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 |
§ ssize_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 |
§ stderr | 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: good |
§ stdin | 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: good |
§ stdout | 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: good |
§ tmpfile | 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 |
§ ungetc | 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 |
§ va_list | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: good | musl: good | netbsd: good | omnios: good | openbsd: unknown_type | solaris: previous_posix | sortix: good |
§ vasprintf | aix: undeclared | dragonfly: extension | freebsd: extension | haiku: good | hurd: extension | linux: extension | macos: extension | minix: undeclared | musl: extension | netbsd: undeclared | omnios: undeclared | openbsd: incompatible | solaris: unknown_type | sortix: extension |
§ vdprintf | aix: good | dragonfly: good | freebsd: good | haiku: undeclared | hurd: good | linux: good | macos: good | minix: good | musl: good | netbsd: good | omnios: good | openbsd: incompatible | solaris: previous_posix | sortix: good |
§ vfprintf | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: good | musl: good | netbsd: good | omnios: good | openbsd: incompatible | solaris: previous_posix | sortix: good |
§ vfscanf | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: compile_error | musl: good | netbsd: good | omnios: good | openbsd: incompatible | solaris: previous_posix | sortix: good |
§ vprintf | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: good | musl: good | netbsd: good | omnios: good | openbsd: incompatible | solaris: previous_posix | sortix: good |
§ vscanf | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: compile_error | musl: good | netbsd: good | omnios: good | openbsd: incompatible | solaris: previous_posix | sortix: good |
§ vsnprintf | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: good | musl: good | netbsd: good | omnios: good | openbsd: incompatible | solaris: previous_posix | sortix: good |
§ vsprintf | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: good | musl: good | netbsd: good | omnios: good | openbsd: incompatible | solaris: previous_posix | sortix: good |
§ vsscanf | aix: good | dragonfly: good | freebsd: good | haiku: good | hurd: good | linux: good | macos: good | minix: compile_error | musl: good | netbsd: good | omnios: good | openbsd: incompatible | solaris: previous_posix | sortix: good |
Optional: OB Obsolescent |
||||||||||||||
§ L_tmpnam | 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 |
§ tmpnam | 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 |
Optional: OB XSI Obsolescent and X/Open System Interfaces |
||||||||||||||
§ TMP_MAX | 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 |