Год 2038 - Почему время останавливается в 00:59:59, а не в 03:14:07
Я написал эту программу, чтобы увидеть, что происходит после 2038-1-19 03:14:07, просто изменив время окон и время печати с помощью ctime, но, к моему удивлению, моя программа перестала работать в 2038-1-19 0:59:59, Почему это так? Это из-за ctime?
Это код, который я использовал:
#include <ctime>
#include <iostream>
#include <windows.h>
int main(void){
while(true){
std::time_t t = std::time(0);
std::tm* now = std::localtime(&t);
std::cout << (now->tm_year + 1900) << '-'
<< (now->tm_mon + 1) << '-'
<< now->tm_mday << ' '
<< now->tm_hour << ':'
<< now->tm_min << ':'
<< now->tm_sec
<< "\n";
Sleep(1000);
}
return 0;
}
И это был сгенерированный вывод:
...
2038-1-19 0:59:55
2038-1-19 0:59:56
2038-1-19 0:59:57
2038-1-19 0:59:58
2038-1-19 0:59:59
Process returned -1073741819 (0xC0000005) execution time : 56.917 s
Press any key to continue.