名前空間
変種
操作

timespec_get

提供: cppreference.com
< c‎ | chrono
ヘッダ <time.h> で定義
int timespec_get( struct timespec *ts, int base)
(C11以上)
#define TIME_UTC /* implementation-defined */
(C11以上)
1) ts の指す timespec オブジェクトにタイムベース base における現在のカレンダー時刻を格納します。
2) timespec_get の引数 base として使用するのに適した値に展開されます。

追加のタイムベースを表す TIME_ で始まる他のマクロ定数が処理系によって提供される場合があります。

baseTIME_UTC の場合、

  • ts->tv_sec は処理系定義のエポックからの秒数に設定されます。端数は切り捨てられます。
  • ts->tv_nsec はシステムクロックの分解能に丸められたナノ秒に設定されます。

目次

[編集] 引数

ts - struct timespec 型のオブジェクトへのポインタ
base - TIME_UTC またはタイムベースを表すその他の非ゼロな整数値

[編集] 戻り値

成功した場合は base の値、そうでなければゼロ。

[編集] ノート

POSIX の関数 clock_gettime(CLOCK_REALTIME, ts) もエポックからの時間を timespec に取得するために使用することができます。

[編集]

#include <stdio.h>
#include <time.h>
 
int main(void)
{
    struct timespec ts;
    timespec_get(&ts, TIME_UTC);
    char buff[100];
    strftime(buff, sizeof buff, "%D %T", gmtime(&ts.tv_sec));
    printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
}

出力:

Current time: 02/18/15 14:34:03.048508855 UTC

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.27.2.5 The timespec_get function (p: 390)

[編集] 関連項目

(C11以上)
秒とナノ秒で表した時間
(構造体) [edit]
エポックからの経過時間で表したシステムの現在時刻を返します
(関数) [edit]
timespec_getC++リファレンス