POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_types.h.html
Portability problems fixed by Gnulib:
pid_t
is not defined on some platforms:
MSVC 14.
size_t
is not defined in this file on some platforms:
MSVC 14.
ssize_t
is not defined on some platforms:
MSVC 14.
mode_t
is not defined on some platforms:
MSVC 14.
off64_t
is not defined on some platforms:
macOS 14, FreeBSD 10.4, NetBSD 10.0, OpenBSD 7.5, MSVC 14, Cygwin, Haiku, Minix 3.3.
blksize_t
is not defined on some platforms:
FreeBSD 5.5, OpenBSD 5.6, HP-UX 11.23, IRIX 6.5, mingw, MSVC 14.
blkcnt_t
is not defined on some platforms:
FreeBSD 5.5, OpenBSD 5.6, mingw, MSVC 14.
major
, minor
, and
makedev
through this header; however, when
sys/sysmacros.h exists, that file should also be included to
avoid deprecation warnings from the versions in this header:
glibc 2.25.
See Avoiding the year 2038 problem, for portability issues with
time_t
.
Portability problems not fixed by Gnulib:
blksize_t
and blkcnt_t
are unsigned:
Android.
blksize_t
and suseconds_t
are signed integer types that are wider than long
:
glibc x32
This module, together with the module largefile
, also defines the type
off_t
to a 64-bit integer type on some platforms:
mingw, MSVC 14.