В QNX 4.25 в начале 2038 года произойдет переполнение данных в структурах, хранящих системное время. Проведенные нами эксперименты показывают, что базовые системные сервисы ОС продолжат функционировать. Вы также можете смоделировать эту ситуацию и проверить поведение ПО вашей системы.
Спасибо за обнадеживающую информацию!!!
Провел простые тесты:
$ date -s 0x7fffffff
Tue Jan 19 06:14:07 msk 2038
$ date -s 0x80000000
date: bad seconds value '0x80000000'
$date -s 2147483648
date: bad seconds value '2147483648'
$date -s -2147483648
Tue Jan 19 06:14:08 msk 2038
Фактически в ведении времени используются все 4 байта, но после 2147483647 (0x7fffffff) секунд следует писать/вводить/подразумевать число секунд с минусом, например -2147483648 (0x80000000)
Прикольно, но не смертельно
Немного протестировал поведение функций С (и утилиты ОС, например date), где используется время в формате time_t (== signed long), например time, mktime, ctime, времена файловой системы прекрасно работают, если использовать ОТРИЦАТЕЛЬНОЕ время.
За исключением функции difftime, где аргументы лучше явно приводить к типу (unsigned long), дабы избежать "скачков" при переходе времени с "+" на "-".
Можно еще добавить, что в QNX4 значения времени меньше нуля прекрасно воспринимаются вплоть до -1 UTC (как и в указанном для ОС QNX6 7 февраля 2106 06:28:14 UTC).
М.б. Вы в курсе, планируется ли "расширить" диапазон положительного представления времени в time_t ? Т.е. прописать в хедерах, что time_t == unsigned long, с соответствующими изменениями кодов и утилит...