API C PyTime¶
Adicionado na versão 3.13.
A API C de relógios provê acesso a relógios do sistema. Ela é similar ao módulo Python time
.
Para uma API C relacionada ao módulo datetime
, veja Objetos DateTime.
Tipos¶
-
type PyTime_t¶
Um registro de data e hora ou uma duração em nanossegundos, representados como um inteiro de 64 bits com sinal.
O ponto de referência para registros de data e hora depende do relógio usado. Por exemplo,
PyTime_Time()
retorna registros relativos à época UNIX.É suportada uma amplitude em torno de [-292.3 anos; +292.3 anos]. Usando o início da época UNIX (1º de Janeiro de 1970) como referência, a gama de datas suportadas é em torno de [1677-09-21; 2262-04-11]. Os limites exatos são expostos como constantes:
Funções de relógio¶
As funções a seguir aceitam um ponteiro para PyTime_t ao qual elas atribuem o valor de um determinado relógio. Detalhes de cada relógio estão disponíveis nas documentações das funções Python correspondentes.
As funções retornam 0
em caso de sucesso, ou -1
(com uma exceção definida) em caso de falha.
Em caso de estouro de inteiros, elas definem a exceção PyExc_OverflowError
e definem *result
como o valor limitado ao intervalo [PyTime_MIN; PyTime_MAX]
. (Em sistemas atuais, estouros de inteiros são provavelmente causados por uma má configuração do tempo do sistema).
As any other C API (unless otherwise specified), the functions must be called with an attached thread state.
-
int PyTime_Monotonic(PyTime_t *result)¶
Lê o relógio monótono. Veja
time.monotonic()
para detalhes importantes sobre este relógio.
-
int PyTime_PerfCounter(PyTime_t *result)¶
Lê o contador de desempenho. Veja
time.perf_counter()
para detalhes importantes sobre este relógio.
-
int PyTime_Time(PyTime_t *result)¶
Lê o “relógio de parede”. Veja
time.time()
para detalhes importantes sobre este relógio.
Funções de relógio brutas¶
Similar to clock functions, but don’t set an exception on error and don’t require the caller to have an attached thread state.
Em caso de sucesso, as funções retornam 0
.
On failure, they set *result
to 0
and return -1
, without setting
an exception. To get the cause of the error, attach a thread state,
and call the regular (non-Raw
) function. Note that the regular function may succeed after
the Raw
one failed.
-
int PyTime_MonotonicRaw(PyTime_t *result)¶
Similar to
PyTime_Monotonic()
, but don’t set an exception on error and don’t require an attached thread state.
-
int PyTime_PerfCounterRaw(PyTime_t *result)¶
Similar to
PyTime_PerfCounter()
, but don’t set an exception on error and don’t require an attached thread state.
-
int PyTime_TimeRaw(PyTime_t *result)¶
Similar to
PyTime_Time()
, but don’t set an exception on error and don’t require an attached thread state.