_ftime / Windows 내부 시간은 어떻게 작동합니까?
문제
Windows에서 흥미로운 문제를 발견하여 Windows 시계 (하드웨어 시계는 아님)가 매 분마다 8 초 정도 빠르게 실행될 수 있습니다. Windows가 내부 시간을 계산하고 업데이트하는 방법을 해결하기 위해 배경 조사를하고 있습니다 (NTP 서버와 동기화되는 방법이 아니라). 누구나 가지고있는 모든 정보 또는 당신이 나를 지적 할 수있는 문서를 크게 감사하겠습니다!
또한 _ftime이 어떻게 작동하는지 아는 사람이 있으면 알려주십시오.
해결책
이 MSDN 기사 시스템 시간이 어떻게 처리되는지에 대한 간단한 설명을 제공합니다. "시스템이 처음 시작되면 컴퓨터의 실시간 시계를 기반으로 시스템 시간을 값으로 설정 한 다음 정기적으로 시간을 업데이트합니다." 또 다른 흥미로운 기능입니다 getSystemTimeAdeAdment, 이것은 다음과 같이 말할 수 있습니다.
lptimeadeadmentDisabled의 경우] true 값은주기 시간 조정이 비활성화되어 있음을 나타냅니다. 각 클록 인터럽트에서 시스템은 시계 인터럽트 사이의 간격을 시간 시간 시계에 추가합니다. 그러나 시스템은 다른 기술을 사용하여 시간 시계를 조정하기 위해 무료입니다. 이러한 다른 기술은 조정이 이루어질 때 시간 시계가 눈에 띄게 점프 될 수 있습니다.
마지막으로 _ftime과 관련하여 getSystemTimeAsFileTime. 따라서 다른 곳에서 사용되는 것과 동일한 내장 시간 시설로 직접 포장됩니다.
다른 팁
방법에 대해 _ftime()
공장:
Microsoft Visual C ++가 설치된 경우 C 런타임 소스도 설치되어있을 것입니다. _ftime()
정의됩니다 %ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.c
그리고 ftime64.c
.
_ftime은 전혀 사용하지 않습니다. 소스 코드를 읽으십시오.