名 前
timeradd, timersub, timercmp, timerclear, timerisset − timeval の 操 作
書 式
#include <sys/time.h>
void
timeradd(struct timeval *a, struct timeval
*b,
struct timeval *res);
void
timersub(struct timeval *a, struct timeval
*b,
struct timeval *res);
void timerclear(struct timeval *tvp);
int timerisset(struct timeval *tvp);
int timercmp(struct timeval *a, struct timeval *b, CMP);
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ): 上 記 の 全 て の 関 数 : _BSD_SOURCE
説 明
timeval 構 造 体 を 操 作 す る た め の マ ク ロ が 提 供 さ れ て い る 。 timeval 構 造 体 は <sys/time.h> で 以 下 の よ う に 定 義 さ れ て い る 。
struct timeval
{
time_t tv_sec; /* 秒 */
suseconds_t tv_usec; /* マ イ ク ロ
秒 */ };
timeradd() は 、 a と b の 時 刻 値 を 加 算 し 、 そ の 合 計 を res に よ り 参 照 さ れ る timeval 構 造 体 に 格 納 す る 。 結 果 は 、 res−>tv_usec の 値 が 0 か ら 999,999 の 範 囲 に 入 る よ う に 正 規 化 さ れ る 。
timersub() は 、 a の 時 刻 値 か ら b の 時 刻 値 を 減 算 し 、 そ の 結 果 を res に よ り 参 照 さ れ る timeval 構 造 体 に 格 納 す る 。 結 果 は 、 res−>tv_usec の 値 が 0 か ら 999,999 の 範 囲 に 入 る よ う に 正 規 化 さ れ る 。
timerclear() は tvp に よ り 参 照 さ れ る timeval 構 造 体 を 0 で 埋 め る 。 0 で 埋 め ら れ た timeval 構 造 体 は 、 時 刻 紀 元 (Epoch; 1970−01−01 00:00:00 +0000 (UTC)) を 表 す 。
timerisset() は 、 tvp に よ り 参 照 さ れ る timeval 構 造 体 の い ず れ か 一 方 の フ ィ ー ル ド に 0 以 外 の 値 が 入 っ て い れ ば 、 真 (0 以 外 ) を 返 す 。
timercmp() は a と b の 時 刻 値 を 比 較 演 算 子 CMP を 使 っ て 比 較 し 、 比 較 結 果 に 基 づ き 、 真 (0 以 外 ) か 偽 (0) を 返 す 。 (Linux/glibc は そ う で は な い が ) い く つ か の シ ス テ ム で は 、 timercmp() の 実 装 が お か し く 、 CMP に >=, <=, == を 指 定 す る と 正 し く 動 作 し な い 。 移 植 性 が 必 要 な ア プ リ ケ ー シ ョ ン で は 、 代 わ り に 以 下 を 使 う こ と 。
!timercmp(...,
<)
!timercmp(..., >)
!timercmp(..., !=)
返 り 値
timerisset() と timercmp() は 、 真 (0 以 外 ) か 偽 (0) を 返 す 。
エ ラ ー
エ ラ ー は 定 義 さ れ て い な い 。
準 拠
POSIX.1−2001 に は な い 。 ほ と ん ど の BSD 由 来 の シ ス テ ム に は 存 在 す る 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。