@node sys/time.h
@section @file{sys/time.h}

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_time.h.html}

Gnulib module: sys_time-h
@mindex sys_time-h

Portability problems fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
MSVC 14.
@item
@samp{struct timeval} is not defined on some platforms.
@item
@samp{struct timeval} is defined with a @code{tv_sec} type that is
narrower than @code{time_t}
on some native Windows platforms:
mingw64 in 64-bit mode,
mingw64 in 32-bit mode when @code{__MINGW_USE_VC2005_COMPAT} is defined,
MSVC 14 in 64-bit mode,
MSVC 14 in 32-bit mode when @code{_USE_32BIT_TIME_T} is not defined.
@end itemize

@xref{Avoiding the year 2038 problem}, for portability issues with
@code{time_t} and the @code{time_t} component of @code{struct timeval}.

Portability problems not fixed by Gnulib:
@itemize
@item
@samp{struct timeval} is defined with a @code{tv_sec} type that is
wider than @code{time_t}:
OpenBSD 5.1 in 64-bit mode.

@item
POSIX.1-2024 allows, but does not require, this file to make visible
all symbols from the header @code{<sys/select.h>}.
Programs should not assume that these other symbols are visible merely
because this file is included, or that they are invisible because only
this file is included.
@end itemize
