Каков правильный способ обработки времени в C-коде для 32-разрядной встроенной Linux (ARMLinux), чтобы гарантировать, что код продолжает работать должным образом после 03:14:07 UTC 19 января 2038 года (когда подписанный 32-разрядный time_t
переполнения)? Учитывая, что time_t
подписали 32-битную систему, которую я должен использовать, каковы альтернативы?
Значительное количество поисковых систем не раскрывает ничего практического использования. Кажется, все полагают, что к этому времени мы все будем использовать 64-битные ОС, но это явно не относится к встроенным системам.
В системе, которую я должен использовать, __kernel_time_t
определяется как long
. Что, предположительно, означает, что нет ядра для 64-битного времени. Версия uClibc равна 0.9.29.
Не могу поверить, что я единственный с этой проблемой, и я не хочу изобретать велосипед.