Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all
名前
time - 秒単位の時間を得る
書式
#include <time.h> time_t time(time_t *tloc);
説明
time() は、紀元 (Epoch; 1970-01-01 00:00:00 (UTC)) からの秒数で返す。 もし tloc が NULL でなかったら返り値は tloc の指しているメモリーにも格納される。
返り値
成功した場合、紀元(the Epoch)からの経過秒数を返す。エラーの場合は ((time_t) -1) を返 し、errno を設定する。
エラー
EFAULT tloc がアクセス可能なアドレス空間の外を指している (ただし「バグ」を参照)。 On systems where the C library time() wrapper function invokes an implementation provided by the vdso(7) (so that there is no trap into the kernel), an invalid address may instead trigger a SIGSEGV signal.
準拠
SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX にはエラー状態の規定はない。
注意
POSIX.1 では、指定した時刻と紀元との間の秒数を近似する変換式を使って、 「紀元からの経過秒数 (seconds since the Epoch)」 を定義している。 この変換式では、4 で割 り切れる年で、100 で割り切れない年はすべて閏年 (但し、400 で割り切れる年は閏年) であるとい う点も考慮されている。 「紀元からの経過秒数」は、紀元と現在時刻との間で実際に経過した秒数 と同じではない。 なぜならば、閏秒が存在するし、システムの時計を標準時間 (standard reference) に同期させる必要もないからである。 この定義の目的は、紀元からの経過秒数の解釈に 一貫性を持たせることになる。 より詳しい原理は POSIX.1 Rationale A.4.15 を参照すること。 On Linux, a call to time() with tloc specified as NULL cannot fail with the error EOVERFLOW, even on ABIs where time_t is a signed 32-bit integer and the clock ticks past the time 2**31 (2038-01-19 03:14:08 UTC, ignoring leap seconds). (POSIX.1 permits, but does not require, the EOVERFLOW error in the case where the seconds since the Epoch will not fit in time_t.) Instead, the behavior on Linux is undefined when the system time is out of the time_t range. Applications intended to run after 2038 should use ABIs with time_t wider than 32 bits.
バグ
Error returns from this system call are indistinguishable from successful reports that the time is a few seconds before the Epoch, so the C library wrapper function never sets errno as a result of this call. The tloc argument is obsolescent and should always be NULL in new code. When tloc is NULL, the call cannot fail. C library/kernel differences On some architectures, an implementation of time() is provided in the vdso(7).
関連項目
date(1), gettimeofday(2), ctime(3), ftime(3), time(7), vdso(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの 説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。