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
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.