PyTime C API

Hinzugefügt in Version 3.13.

Die Clock C API bietet Zugriff auf Systemuhren. Sie ist ähnlich dem Python time-Modul.

Für die C API im Zusammenhang mit dem datetime-Modul siehe Datum/Zeit-Objekte.

Typen

type PyTime_t

Ein Zeitstempel oder eine Dauer in Nanosekunden, dargestellt als vorzeichenbehaftete 64-Bit-Ganzzahl.

Der Bezugspunkt für Zeitstempel hängt von der verwendeten Uhr ab. Zum Beispiel gibt PyTime_Time() Zeitstempel relativ zur UNIX-Epoche zurück.

Der unterstützte Bereich liegt bei etwa [-292,3 Jahre; +292,3 Jahre]. Unter Verwendung der Unix-Epoche (1. Januar 1970) als Referenzpunkt liegt der unterstützte Datumsbereich bei etwa [1677-09-21; 2262-04-11]. Die genauen Grenzen sind als Konstanten verfügbar

PyTime_t PyTime_MIN

Minimalwert von PyTime_t.

PyTime_t PyTime_MAX

Maximalwert von PyTime_t.

Clock-Funktionen

Die folgenden Funktionen nehmen einen Zeiger auf ein PyTime_t, das sie auf den Wert einer bestimmten Uhr setzen. Details zu jeder Uhr sind in der Dokumentation der entsprechenden Python-Funktion aufgeführt.

Die Funktionen geben im Erfolgsfall 0 oder im Fehlerfall -1 (mit gesetzter Exception) zurück.

Bei ganzzahligen Überläufen setzen sie die Exception PyExc_OverflowError und setzen *result auf den auf den Bereich [PyTime_MIN; PyTime_MAX] geklemmten Wert. (Auf aktuellen Systemen werden ganzzahlige Überläufe wahrscheinlich durch falsch konfigurierte Systemzeit verursacht.)

Wie jede andere C API (sofern nicht anders angegeben) müssen die Funktionen mit einem angehängten Thread-Zustand aufgerufen werden.

int PyTime_Monotonic(PyTime_t *result)

Liest die monotone Uhr. Siehe time.monotonic() für wichtige Details zu dieser Uhr.

int PyTime_PerfCounter(PyTime_t *result)

Liest den Performance-Zähler. Siehe time.perf_counter() für wichtige Details zu dieser Uhr.

int PyTime_Time(PyTime_t *result)

Liest die „Wall Clock“-Zeit. Siehe time.time() für wichtige Details zu dieser Uhr.

Raw Clock-Funktionen

Ähnlich wie die Clock-Funktionen, aber sie setzen keine Exception im Fehlerfall und erfordern nicht, dass der Aufrufer einen angehängten Thread-Zustand hat.

Im Erfolgsfall geben die Funktionen 0 zurück.

Im Fehlerfall setzen sie *result auf 0 und geben -1 zurück, *ohne* eine Exception zu setzen. Um die Ursache des Fehlers zu ermitteln, hängen Sie einen Thread-Zustand an und rufen Sie die normale (nicht-Raw) Funktion auf. Beachten Sie, dass die normale Funktion nach einem Fehler der Raw-Funktion erfolgreich sein kann.

int PyTime_MonotonicRaw(PyTime_t *result)

Ähnlich wie PyTime_Monotonic(), aber es wird im Fehlerfall keine Exception gesetzt und es ist kein angehängter Thread-Zustand erforderlich.

int PyTime_PerfCounterRaw(PyTime_t *result)

Ähnlich wie PyTime_PerfCounter(), aber es wird im Fehlerfall keine Exception gesetzt und es ist kein angehängter Thread-Zustand erforderlich.

int PyTime_TimeRaw(PyTime_t *result)

Ähnlich wie PyTime_Time(), aber es wird im Fehlerfall keine Exception gesetzt und es ist kein angehängter Thread-Zustand erforderlich.

Konvertierungsfunktionen

double PyTime_AsSecondsDouble(PyTime_t t)

Konvertiert einen Zeitstempel in eine Anzahl von Sekunden als C double.

Die Funktion kann nicht fehlschlagen, aber beachten Sie, dass double bei großen Werten eine begrenzte Genauigkeit aufweist.