PyTime C API¶
Added in version 3.13.
clock C API는 시스템 시계에 대한 접근을 제공합니다. 이는 파이썬의 time 모듈과 유사합니다.
datetime 모듈과 관련된 C API는 DateTime 객체 를 참조하십시오.
타입¶
-
type PyTime_t¶
부호 있는 64비트 정수로 표현된 나노초 단위의 타임스탬프 또는 지속 시간입니다.
타임스탬프의 기준점은 사용되는 시계에 따라 달라집니다. 예를 들어,
PyTime_Time()은 UNIX 에포크(epoch)를 기준으로 한 타임스탬프를 반환합니다.지원 범위는 약 [-292.3년; +292.3년]입니다. Unix 에포크(1970년 1월 1일)를 기준으로 할 때, 지원되는 날짜 범위는 대략 [1677-09-21; 2262-04-11]입니다. 정확한 한계값은 상수로 제공됩니다:
시계 함수¶
다음 함수들은 특정 시계의 값을 할당할 PyTime_t 포인터를 매개변수로 받습니다. 각 시계에 대한 상세 정보는 해당 파이썬 함수의 문서에서 확인할 수 있습니다.
함수는 성공 시 0 을 반환하고, 실패 시 -1 (예외 설정 포함)을 반환합니다.
정수 오버플로 발생 시, PyExc_OverflowError 예외를 설정하고 *result``을 ``[PyTime_MIN; PyTime_MAX] 범위 내의 값으로 제한(clamp)하여 설정합니다. (현재 시스템에서 정수 오버플로는 대개 잘못 구성된 시스템 시간으로 인해 발생할 가능성이 높습니다.)
다른 모든 C API와 마찬가지로(별도로 명시되지 않는 한), 이 함수들은 attached thread state 가 있는 상태에서 호출되어야 합니다.
-
int PyTime_Monotonic(PyTime_t *result)¶
단조 시계(monotonic clock)를 읽습니다. 이 시계에 대한 중요한 세부 사항은
time.monotonic()을 참조하십시오.
-
int PyTime_PerfCounter(PyTime_t *result)¶
성능 카운터(performance counter)를 읽습니다. 이 시계에 대한 중요한 세부 사항은
time.perf_counter()를 참조하십시오.
-
int PyTime_Time(PyTime_t *result)¶
“벽시계(wall clock)” 시간을 읽습니다. 이 시계에 대한 중요한 세부 사항은
time.time()을 참조하십시오.
Raw 시계 함수¶
시계 함수와 유사하지만, 에러 발생 시 예외를 설정하지 않으며 호출자가 attached thread state 를 보유할 필요가 없습니다.
성공 시, 함수는 0 을 반환합니다.
실패 시, 예외를 설정하지 않고 *result 을 0 으로 설정한 후 -1 을 반환합니다. 에러의 원인을 파악하려면 thread state 를 attach 하고 일반(Raw이 아닌) 함수를 호출하십시오. 주의할 점은, Raw 함수가 실패했더라도 일반 함수는 성공할 수 있다는 것입니다.
-
int PyTime_MonotonicRaw(PyTime_t *result)¶
PyTime_Monotonic()과 유사하지만, 에러 시 예외를 설정하지 않으며 attached thread state 를 요구하지 않습니다.
-
int PyTime_PerfCounterRaw(PyTime_t *result)¶
PyTime_PerfCounter()와 유사하지만, 에러 시 예외를 설정하지 않으며 attached thread state 를 요구하지 않습니다.
-
int PyTime_TimeRaw(PyTime_t *result)¶
PyTime_Time()와 유사하지만, 에러 시 예외를 설정하지 않으며 attached thread state 를 요구하지 않습니다.