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:

PyTime_t PyTime_MIN

Minsta värde av PyTime_t.

PyTime_t PyTime_MAX

Maximalt värde för PyTime_t.

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.

Omvandlingsfunktioner

double PyTime_AsSecondsDouble(PyTime_t t)

Konvertera en tidsstämpel till ett antal sekunder som en C double.

Funktionen kan inte misslyckas, men observera att double har begränsad noggrannhet för stora värden.