Pergunta

Eu encontrei um problema interessante em janelas que me permite fazer com que o relógio do Windows (mas não os relógios de hardware) para correr rápido - tanto quanto 8 segundos a cada minuto. Eu estou fazendo alguma pesquisa de fundo para trabalhar como calcula e atualizações do Windows é hora interna (não como ele sincroniza com um servidores NTP). Qualquer informação alguém tem ou quaisquer documentos que você pode apontar-me a seria muito apreciada!

Além disso, se alguém sabe como _ftime funciona por favor me avise.

Foi útil?

Solução

Este artigo MSDN dá uma muito breve descrição de como a hora do sistema é tratado: "Quando pela primeira vez o sistema é iniciado, ele define a hora do sistema para um valor com base no relógio de tempo real do computador e, em seguida, atualiza regularmente o tempo todo." Outra função interessante é GetSystemTimeAdjustment , que tem que dizer isto:

Um valor de TRUE [para lpTimeAdjustmentDisabled] indica que o ajuste do tempo periódica é desativado. Em cada interrupção de relógio, o sistema apenas adiciona o intervalo entre as interrupções do relógio para o relógio de tempo-de-dia. O sistema é livre, no entanto, para ajustar seu relógio de hora do dia usando outras técnicas. Tais outras técnicas podem fazer com que o relógio de hora do dia para saltar visivelmente quando os ajustes são feitos.

Finalmente, em relação à _ftime, parece ser implementado usando GetSystemTimeAsFileTime . Por isso envolveria diretamente sobre as mesmas facilidades embutidas tempo que seria usado em qualquer outro lugar.

Outras dicas

A respeito de como _ftime() funciona:

Se você tiver o Microsoft Visual C ++ instalado, você provavelmente tem a fonte de tempo de execução C instalado também. _ftime() é definida em %ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.c e ftime64.c.

_ftime não usar em tudo GetSystemTimeAsFileTime. Basta ler o código-fonte.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top