FTIME(3)

名前
ftime - 日付と時間を返す

書式
#include <sys/timeb.h>

int ftime(struct timeb *tp);

説明
この関数は現在の時刻を、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒数とミリ秒数で返す。 時刻は tp で返され、これは以下のように定義されている:

struct timeb {
    time_t         time;
    unsigned short millitm;
    short          timezone;
    short          dstflag;
};

ここで、time は紀元 (the Epoch) からの秒数、 millitm は 紀元から time 秒後からのミリ秒数である。 timezone フィールドはグリニッジから西周りの分で計測される ローカルタイムゾーンである(負数の場合はグリニッジからの東回りの分を 示す)。 dstflag フィールドは、もし 0 でなければ一年の一部で夏時間が 存在することを示すフラグである。

POSIX.1-2001 では、timezone と dstflag の内容は未定義である; これに頼るのは避けること。

返り値
この関数は常に 0 を返す。 (POSIX.1-2001 仕様及びいくつかのシステムのドキュメントでは、 エラー時に -1 を返す。)

準拠
4.2BSD, POSIX.1-2001. POSIX.1-2008 では ftime() の仕様が削除されている。 この関数は古いものである。使ってはならない。 秒単位の時間で十分なら、 time(2) が利用できる。 gettimeofday(2) でマイクロ秒が得られる。 clock_gettime(2) でナノ秒が得られるが、広く利用可能な訳ではない。

バグ

millitm フィールドは、libc4 と libc5 では正しく動作する。 しかし、初期の glibc2 ではバグがあり、常に 0 を返す。 glibc 2.1.1 から再び正常になった。

関連項目
gettimeofday(2), time(2)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。