Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::timespec(3)	      C++ Standard Libary	      std::timespec(3)

NAME
       std::timespec - std::timespec

Synopsis
	  Defined in header <ctime>
	  struct timespec;	     (since C++17)

	  Structure  holding an	interval broken	down into seconds and nanosec-
       onds.

Member objects
	  std::time_t tv_sec whole seconds  >= 0
	  long tv_nsec	     nanoseconds  [0, 999999999]

	  The declaration order	of tv_sec and tv_nsec is  unspecified.	Imple-
       mentation may add
	  other	data members to	timespec.

Notes
	  The  type  of	 tv_nsec is long long on some platforms, which is cur-
       rently
	  non-conforming in C++, but is	allowed	in C since C23.

Example
       // Run this code

	#include <ctime>
	#include <iostream>

	int main()
	{
	    std::timespec ts;
	    std::timespec_get(&ts, TIME_UTC);
	    char buff[0x80];
	    std::strftime(buff,	   sizeof    buff,    "%D    %T",     std::gm-
       time(&ts.tv_sec));

	//   auto  [sec,  nsec]	= ts; // UB: structured	bindings should	not be
       used because the
				   // declaration order	and data  member  list
       are unspecified

	    std::cout << "Current time:	" << buff << " (UTC)\n"
		      << "Raw timespec.tv_sec: " << ts.tv_sec << '\n'
		      << "Raw timespec.tv_nsec:	" << ts.tv_nsec	<< '\n';
	}

Possible output:
	Current	time: 04/06/23 12:03:31	(UTC)
	Raw timespec.tv_sec: 1680782611
	Raw timespec.tv_nsec: 678437213

See also
	  timespec_get	returns	 the  calendar time in seconds and nanoseconds
       based on	a given
	  (C++17)      time base
		       (function)
	  tm	       calendar	time type
		       (class)
	  C documentation for
	  timespec

http://cppreference.com		  2024.06.10		      std::timespec(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::timespec&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help