Каков правильный способ обработки времени в C-коде для 32-разрядной встроенной Linux (ARMLinux), чтобы код продолжал работать должным образом после 03:14:07 UTC 19 января 2038 года (когда подписанный 32-разрядный time_t
переполнение)? Учитывая, что time_t
подписан 32-разрядной системой, я должен использовать, каковы альтернативы?Решение 2038 года для встроенного Linux (32 бит)?
Значительное количество поисковых систем не имеет ничего общего с практическим использованием. Кажется, все полагают, что к тому времени все мы будем использовать 64-битные ОС, но это явно не относится к встроенным системам.
В системе, которую я должен использовать, __kernel_time_t
определяется как long
. Что, предположительно, означает, что нет ядра для 64-битного времени. Версия uClibc - 0.9.29.
Я не могу поверить, что я единственный с этой проблемой, и я не хочу изобретать велосипед.
Хотя я согласен, что это хороший вопрос, он может быть слишком широк для SO. Вы обыскали LKML или отправили запрос? – Olaf
@Olaf: Я читал о том, что делают авторы ядра Linux, но все это вращается вокруг 64-битных систем. Я не думаю, что этот вопрос слишком широк; честно говоря, я сомневаюсь, что в любом случае есть много разных способов сделать это, и ответ вполне может быть: «В настоящее время нет универсального решения для встроенных систем». –
Сейчас 20+ лет –