PyTime C API¶
Added in version 3.13.
クロック C API は、システムクロックへのアクセスを提供します。これは Python の time モジュールに似ています。
datetime モジュールに関連する C API については、DateTime オブジェクト を参照してください。
型¶
-
type PyTime_t¶
符号付き 64 ビット整数で表す、ナノ秒単位のタイムスタンプまたは時間間隔です。
タイムスタンプの基準時点は、使用するクロックによって異なります。 例えば
PyTime_Time()は UNIX エポックを基準としたタイムスタンプを返します。サポートする範囲はおよそ [-292.3 年; +292.3 年] です。 Unix エポック (1970 年 1 月 1 日) を基準とした日付の範囲は、およそ [1677-09-21; 2262-04-11] です。 正確な限界値は定数として公開されています。
クロック関数¶
以下の関数は PyTime_t へのポインタを受け取り、特定のクロックの値をその参照先に設定します。 各クロックの詳細は、対応する Python 関数のドキュメントを参照してください。
成功した場合は 0 を返し、失敗した場合は例外を設定して -1 を返します。
整数オーバーフローが発生した場合は PyExc_OverflowError 例外を設定し、*result に [PyTime_MIN; PyTime_MAX] の範囲内に制限した値を設定します。
(現在のシステムでは、整数オーバーフローはシステム時刻の誤設定によって発生する可能性が高いです。)
ほかの C API と同様に (特記のない限り)、これらの関数を呼び出すには スレッド状態がアタッチされている 必要があります。
-
int PyTime_Monotonic(PyTime_t *result)¶
単調クロックを読み取ります。 このクロックに関する重要な詳細は
time.monotonic()を参照してください。
-
int PyTime_PerfCounter(PyTime_t *result)¶
パフォーマンスカウンタを読み取ります。 このクロックに関する重要な詳細は
time.perf_counter()を参照してください。
-
int PyTime_Time(PyTime_t *result)¶
実時間 (wall clock time) を読み取ります。 このクロックに関する重要な詳細は
time.time()を参照してください。
Raw クロック関数¶
クロック関数と同様ですが、エラー時に例外を設定せず、呼び出し元に アタッチされたスレッド状態 がなくても使えます。
成功した場合は 0 を返します。
失敗した場合は *result を 0 に設定し、例外を設定 せずに -1 を返します。
エラーの原因を取得するには、スレッド状態 を アタッチ して、通常の (Raw でない) 関数を呼び出してください。
Raw 関数が失敗した後で、通常の関数が成功することもあります。
-
int PyTime_MonotonicRaw(PyTime_t *result)¶
PyTime_Monotonic()と同様ですが、エラー時に例外を設定せず、アタッチされたスレッド状態 も必要としません。
-
int PyTime_PerfCounterRaw(PyTime_t *result)¶
PyTime_PerfCounter()と同様ですが、エラー時に例外を設定せず、アタッチされたスレッド状態 も必要としません。
-
int PyTime_TimeRaw(PyTime_t *result)¶
PyTime_Time()と同様ですが、エラー時に例外を設定せず、アタッチされたスレッド状態 も必要としません。