名前空間
変種
操作

timespec_getres

From cppreference.com
< c‎ | chrono
ヘッダー <time.h> で定義
int timespec_getres( struct timespec *ts, int base );
(C23以降)

ts がヌルでなく、basetimespec_get でサポートされている場合、base が提供する時間の分解能を *ts に格納します。サポートされている各 base について、同じプログラム実行中に複数回 timespec_getres を呼び出しても結果は同じになります。

目次

[編集] パラメータ

ts - struct timespec 型のオブジェクトへのポインタ
base - TIME_UTC または時間基準を示すその他のゼロ以外の整数値

[編集] 戻り値

base がサポートされている場合は base の値、そうでない場合はゼロ。

[編集] 注記

POSIX 関数 clock_getres(clock_id, ts) も、clock_id によって識別される時間の分解能を timespec に格納するために使用できます。

[編集]

#include <stdio.h>
#include <time.h>
 
int main(void)
{
    char buff[128];
    struct timespec ts;
    const int res = timespec_getres(&ts, TIME_UTC);
    if (res == TIME_UTC) {
        struct tm timer;
        strftime(buff, sizeof buff, "%D %T", gmtime_r(&ts.tv_sec, &timer));
        printf("Time resolution info: %s.%09ld UTC\n", buff, ts.tv_nsec);
    } else {
        printf("TIME_UTC base is not supported.");
    }
}

実行結果の例

Time resolution info: 01/01/70 00:00:00.000000001 UTC

[編集] 関連項目

秒とナノ秒での時間
(構造体)[編集]
与えられた時間基準に基づいて、カレンダー時間を秒とナノ秒で返す
(関数) [編集]
エポックからの時間としてシステムの現在のカレンダー時間を返す
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)