Namespaces
Variants

std:: timespec_get

From cppreference.net
< cpp ‎ | chrono ‎ | c
ヘッダー <ctime> で定義
int timespec_get ( std:: timespec * ts, int base ) ;
(1) (C++17以降)
#define TIME_UTC /* implementation-defined */
(2) (C++17以降)
1) 現在のカレンダー時間を時間ベース base ts が指す std::timespec オブジェクトに設定する。
2) std::timespec_get base 引数として使用するのに適した値に展開されます。

TIME_ で始まる他のマクロ定数は、実装によって追加の時間基準を示すために提供される場合があります。

base TIME_UTC の場合、

  • ts - > tv_sec は、実装定義のエポックからの秒数(整数値に切り捨て)に設定され、
  • ts - > tv_nsec メンバは、システムクロックの分解能に丸められたナノ秒単位の整数値に設定されます。

目次

パラメータ

ts - std::timespec 型のオブジェクトへのポインタ
base - TIME_UTC または時間ベースを示す他の非ゼロ整数値

戻り値

成功した場合の base の値、それ以外の場合はゼロ。

注記

POSIX関数 clock_gettime(CLOCK_REALTIME, ts) を使用して、エポックからの経過時間で std::timespec を設定することもできます。

#include <ctime>
#include <iostream>
int main()
{
    std::timespec ts;
    std::timespec_get(&ts, TIME_UTC);
    char buf[100];
    std::strftime(buf, sizeof buf, "%D %T", std::gmtime(&ts.tv_sec));
    std::cout << "Current time: " << buf << '.' << ts.tv_nsec << " UTC\n";
}

出力例:

Current time: 06/24/16 20:07:42.949494132 UTC

関連項目

(C++17)
秒とナノ秒での時間
(構造体)
エポックからの経過時間としてシステムの現在時刻を返す
(関数)
Cドキュメント for timespec_get