.\" Copyright (c) 2020-2022 by Alejandro Colomar .\" and Copyright (c) 2020 by Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" .TH timespec 3type 2023-10-31 "Linux man-pages 6.7" .SH NAME timespec \- time in seconds and nanoseconds .SH LIBRARY Standard C library .RI ( libc ) .SH SYNOPSIS .EX .B #include .P .B struct timespec { .BR " time_t tv_sec;" " /* Seconds */" .RB " /* ... */" " tv_nsec;" \ " /* Nanoseconds [" 0 ", " 999\[aq]999\[aq]999 "] */" .B }; .EE .SH DESCRIPTION Describes times in seconds and nanoseconds. .P .I tv_nsec is of an implementation-defined signed type capable of holding the specified range. Under glibc, this is usually .IR long , and .I long long on X32. It can be safely down-cast to any concrete 32-bit integer type for processing. .SH VERSIONS Prior to C23, .I tv_nsec was .IR long . .SH STANDARDS C11, POSIX.1-2008. .SH HISTORY POSIX.1-2001. .SH NOTES The following headers also provide this type: .IR , .IR , .IR , .IR , .IR , and .IR . .SH SEE ALSO .BR clock_gettime (2), .BR clock_nanosleep (2), .BR nanosleep (2), .BR timerfd_gettime (2), .BR timer_gettime (2), .BR time_t (3type), .BR timeval (3type)