Я использую RTL8710 (работает rustl8710 , но это не имеет отношения к этому вопросу, так как весь код, о котором я говорю, - это C-код).RTL8710 имеет проприетарные библиотеки для некоторых частей системы, включая localtime
.
Однако localtime
кажется отключенным примерно на 460 000 лет при его использовании таким образом (взято из включенного NTPреализация ):
long current_sec = 1543067026;
struct tm current_tm = *(localtime(¤t_sec));
Возвращает следующую структуру:
{tm_sec = 51,
tm_min = 36,
tm_hour = 15,
tm_mday = 25,
tm_mon = 8,
tm_year = -458682,
tm_wday = 2,
tm_yday = 267,
tm_isdst = -1515870811}
Очевидно, что это неправильно, должно быть что-то близкое к 24 ноября 2018 13:52:04 по Гринвичу.Это не случайно, потому что время, кажется, всегда различается примерно на 2 часа и несколько минут.
Единственное, что заслуживает внимания, это то, что код использует системные заголовки по умолчанию time.h
и string.h
(чтобудет из Ubuntu 18.10, 64bit в моем случае).
Я понятия не имею, что на самом деле использует библиотека stdlib RealTek, но, судя по информации отладки (newlib/libc/time/lcltime.c
), я бы предположил, что это (измененный?) версия newlib.