Namespaces
Variants

timespec_getres

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

ts が非NULLであり、かつ base timespec_get によってサポートされている場合、 * ts を、 base に対して timespec_get が提供する時間の分解能を保持するように変更します。 サポートされている各 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

関連項目

秒とナノ秒での時間
(構造体)
指定された時間基準に基づいて秒とナノ秒でのカレンダー時間を返す
(関数)
エポックからの経過時間としてシステムの現在のカレンダー時間を返す
(関数)