Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.2. Управление работой RDS и функции общего назначения
А.5.2.9. rdsBadSystemTime – ошибка в системных часах
Функция rdsBadSystemTime грубо проверяет правильность работы системных часов.
BOOL RDSCALL rdsBadSystemTime(void);
Тип указателя на эту функцию
RDS_BV
Возвращаемое значение
TRUE, если в показаниях системных часов есть явная ошибка, FALSE в противном случае.
Примечания
Правильность работы системных часов важна в программах, ориентирующихся в своей работе на время изменения каких-либо файлов. Например, модули автоматической компиляции часто вызывают внешний компилятор для сборки DLL с моделью блока только в том случае, если время изменения файла модели больше времени изменения файла DLL, то есть DLL устарела (см. §3.4). Если системные часы идут неправильно (например, сбрасываются при выключении питания), такая проверка будет давать непредсказуемые результаты. Чтобы избежать возможных ошибок, следует в таких случаях проверять работу часов вызовом rdsBadSystemTime.
Функция rdsBadSystemTime проверяет часы следующим образом. RDS при каждом своем завершении записывает текущее время и дату в файл «rds.ini». При вызове rdsBadSystemTime текущее системное время сравнивается с этим записанным значением. Если текущее время окажется меньше, значит, с момента последнего завершения RDS часы сбросились. Такая проверка не дает полной гарантии правильности работы часов, тем не менее, в большинстве случаев ее достаточно для определения сброса часов при разряде их батарейки.