Scroll to navigation

clock(3) Library Functions Manual clock(3)

名前

clock - プロセッサ時間の取得

ライブラリ

標準 C ライブラリ (libc, -lc)

書式

#include <time.h>
clock_t clock(void);

説明

clock() はプログラムの使用したプロセッサ時間の近似値を返します。

返り値

返り値は clock_t 単位での CPU 時間です。秒単位での値を得るためには CLOCKS_PER_SEC で割ります。使用したプロセッサ時間が得られない場合や、その値を表現できない場合、この関数は (clock_t) -1 を返します。

属性

この節で使用されている用語の説明については、 attributes(7) を参照してください。

インターフェース 属性 値
clock() Thread safety MT-Safe

バージョン

XSI は実際の精度にはよらず CLOCKS_PER_SEC が 1000000 であることを要求しています。

実装によっては、 clock() で返される値に wait(2) (あるいはその他の wait のような関数) で収集された 子プロセスの時間が含まれる場合もあります。Linux では、 clock() が返す値には wait された子プロセスの時間は含まれません。 times(2) 関数は呼び出し元とその子プロセスに関する情報を (別々に) 明示的に返すので、より好ましいと言えます。

標準

C11, POSIX.1-2008.

履歴

POSIX.1-2001, C89.

glibc 2.17 以前では、 clock() は times(2) を使って実装されていました。glibc 2.18 以降では、精度を向上させるため、 clock_gettime(2) (の CLOCK_PROCESS_CPUTIME_ID クロック) を使って実装されています。

注意

C の標準規格ではプログラムの開始の時点ではどんな値が返ってきてもかまいません。移植性を最大限確保するためには、プログラムの開始時に clock() を呼び出してその値を差し引いてください。

時刻は桁あふれする可能性がある点に注意してください。CLOCKS_PER_SEC が 1000000 である 32 ビットシステムでは、この関数は約 72 分毎に同じ値を返すことになります。

関連項目

clock_gettime(2), getrusage(2), times(2)

2026-02-08 Linux man-pages (未リリース)