블로그는 나의 힘!
[ Programing ]/C++2011. 9. 29. 02:28

시스템 시간을 변경시 time(NULL)에는 영향을 줄까?!



time() 인자에 NULL을 대입하면 초기화한 time 값으로  한다.
쉽게 말해 time() 함수에서 데이터를 조사하여 시스템에 시간을 조정하는 거라면 조정 시간은 반환 된다.

윈도우 시간을 변경시 내부 틱타임이 변하지 않지만, 틱타임으로부터 카운트 되는건 변한다.
시간 획득에 목적이 있는 경우에는 데이터를 보장 하지 못하며,
시간 획득이 아닌 시작 시간과 끝 시간 사이의 흐름을 측정하기 위한 것이라면 완벽하지 않으나 어느 정도 보장이 된다.
단, 중간에 시간이 변하지 않았다는 가정하에.

랜던 타임을 측정하기 위한 단순 연대측정이라면 아무런 상관 없는 유니크한 값을 (측정가능한 유니크) 얻을 수 있다.


다시 요약하자면,
시스템 시간을 변경시 time() 함수에 반환된 시간도 결론적으로는 변한다.
하지만 큰 변화점이 없어 (초 정도의 오차) 시스템 시간을 변경 하더라도 독자적으로 동작해 절대적으로 보기는 힘드나 어느 정도 이상 없이 사용 할 수 있다.



절대적인 오차 없이 사용 할려면 frequency를 사용 하시길.
윈도우에서는 queryperformancecounter 를 지원 하니 참고 하길 바란다.

Posted by Mister_Q