PyTime C API¶
Tillagd i version 3.13.
API:et clock C ger tillgång till systemklockor. Det liknar Pythons modul time
.
För C API relaterat till modulen datetime
, se DateTime-objekt.
Typer¶
-
type PyTime_t¶
En tidsstämpel eller varaktighet i nanosekunder, representerad som ett signerat 64-bitars heltal.
Referenspunkten för tidsstämplar beror på vilken klocka som används. Till exempel
PyTime_Time()
returnerar tidsstämplar i förhållande till UNIX-epoken.Det intervall som stöds är cirka [-292,3 år; +292,3 år]. Om man använder Unix-epoken (1 januari 1970) som referens är det datumintervall som stöds cirka [1677-09-21; 2262-04-11]. De exakta gränserna anges som konstanter:
Klockfunktioner¶
Följande funktioner tar en pekare till en PyTime_t som de ställer in till värdet för en viss klocka. Detaljer om varje klocka ges i dokumentationen för motsvarande Python-funktion.
Funktionerna returnerar 0
om de lyckas, eller -1
(med en undantagsuppsättning) om de misslyckas.
Vid heltalsöverskridanden anger de undantaget PyExc_OverflowError
och sätter *result
till det värde som är fastspänt i intervallet [PyTime_MIN; PyTime_MAX]
. (På nuvarande system orsakas heltalsöverflöden sannolikt av felkonfigurerad systemtid)
Som alla andra C API (om inget annat anges) måste funktionerna anropas med en attached thread state.
-
int PyTime_Monotonic(PyTime_t *result)¶
Läser den monotoniska klockan. Se
time.monotonic()
för viktiga detaljer om denna klocka.
-
int PyTime_PerfCounter(PyTime_t *result)¶
Läser prestandaräknaren. Se
time.perf_counter()
för viktiga detaljer om denna klocka.
-
int PyTime_Time(PyTime_t *result)¶
Läser av tiden på ”väggklockan”. Se
time.time()
för viktiga detaljer om denna klocka.
Raw Clock-funktioner¶
Liknar klockfunktioner, men ställer inte in ett undantag vid fel och kräver inte att den som anropar har en attached thread state.
Vid framgång returnerar funktionerna 0
.
Vid misslyckande sätter de *result
till 0
och returnerar -1
, utan att sätta ett undantag. För att få reda på orsaken till felet, attach en thread state, och anropa den vanliga (icke-Raw
) funktionen. Observera att den vanliga funktionen kan lyckas efter att den Raw
misslyckats.
-
int PyTime_MonotonicRaw(PyTime_t *result)¶
Liknar
PyTime_Monotonic()
, men sätter inte ett undantag vid fel och kräver inte en attached thread state.
-
int PyTime_PerfCounterRaw(PyTime_t *result)¶
Liknar
PyTime_PerfCounter()
, men ställer inte in ett undantag vid fel och kräver inte en attached thread state.
-
int PyTime_TimeRaw(PyTime_t *result)¶
Liknar
PyTime_Time()
, men sätter inte ett undantag vid fel och kräver inte en attached thread state.