2038년 문제: 두 판 사이의 차이
K-위키
새 문서: {{예언}} 32비트로 표현된 유닉스 시간이 1970년 1월 1일 00:00 (UTC)에서 2,147,483,647(2<sup>31</sup> - 1)초 지난 후인 2038년 1월 19일 03:14:08 (UTC)... |
편집 요약 없음 |
||
| 3번째 줄: | 3번째 줄: | ||
32비트 시스템에서 시간 저장할때 쓰는 time_t형이 부호있는 32비트 정수여서 저 시간이 지나면 내부적으로 음수로 표현된다는거다. 부호 있는 32비트에서는 2147483647에 1을 더하면 -2147483648이 되서 1970년 또는 1901년을 가리킨다. | 32비트 시스템에서 시간 저장할때 쓰는 time_t형이 부호있는 32비트 정수여서 저 시간이 지나면 내부적으로 음수로 표현된다는거다. 부호 있는 32비트에서는 2147483647에 1을 더하면 -2147483648이 되서 1970년 또는 1901년을 가리킨다. | ||
그러자고 time_t를 부호 없는 32비트로 바꾸면 2106년까지는 다룰 수 있는데 음수를 표기 못해서 상대값 등을 나타내는데 어려움이 있고, 64비트로 바꾸면 호환성에 이상이 생긴다. 물론 컴퓨터가 64비트 운영체제면 원래부터 time_t가 64비트니까 상관없다. | |||
== 디시위키에서 나중에 실제로 보자 == | == 디시위키에서 나중에 실제로 보자 == | ||
2017년 10월 28일 (토) 09:14 판
| 본 문서는 향후에 일어날지도 모르는 미래를 담고 있습니다. 이 문서의 내용은 디시 친구들이 미래에서 흘러들어온 전파를 수신하여 사실에 가깝게 적었습니다. 하지만 전파의 상태가 워낙 나빠 실현될지 안 될지는 모르겠습니다. |
32비트로 표현된 유닉스 시간이 1970년 1월 1일 00:00 (UTC)에서 2,147,483,647(231 - 1)초 지난 후인 2038년 1월 19일 03:14:08 (UTC)에 특정한 컴퓨터 소프트웨어에 이상이 발생하는 문제가 나타난다는 것이다.
32비트 시스템에서 시간 저장할때 쓰는 time_t형이 부호있는 32비트 정수여서 저 시간이 지나면 내부적으로 음수로 표현된다는거다. 부호 있는 32비트에서는 2147483647에 1을 더하면 -2147483648이 되서 1970년 또는 1901년을 가리킨다.
그러자고 time_t를 부호 없는 32비트로 바꾸면 2106년까지는 다룰 수 있는데 음수를 표기 못해서 상대값 등을 나타내는데 어려움이 있고, 64비트로 바꾸면 호환성에 이상이 생긴다. 물론 컴퓨터가 64비트 운영체제면 원래부터 time_t가 64비트니까 상관없다.
디시위키에서 나중에 실제로 보자
1773716949
이게 2038년 1월 19일에 음수가 된다는 거다. 근데 그때까지 디키가 있을까..?