2012-01-31 1 views
3

숙제의 경우 많은 time_t 개체를 처리하는 프로그램을 작성 중입니다. 오버플로에 대해 조사해 보려고 생각했지만, 오버플로되면 모두 문제가 될 것입니다.신기원> LONG_MAX 이후로 몇 초가 지나면 어떻게됩니까?

계획이 있습니까? 신기원 이후의 시간이 저장 공간을 초과하면 어떻게됩니까?

+1

time_t를 64 비트 형식으로 만들지 않은 주류 CRT 구현이 있는지 의심 스럽습니다. –

+0

http://en.wikipedia.org/wiki/Year_2038_problem –

+0

@ 한스 : 틀렸어. 'time_t'는 특히 Linux/glibc를 포함하여 내가 아는 기존의 모든 32 비트 머신에서 32 비트 ('long')입니다. 어쨌든, 나는 모든 32 비트 머신이 2038 년까지 폐기 될 것이라고 기대하는 것이 현실적이라고 생각한다. –

답변

9

LONG_MAX2^63 - 1입니다. 시도해보십시오 : http://google.com으로 이동하여 2^63 seconds in years을 입력하십시오. 답을보고 정말로 걱정할 필요가 있는지 결정하십시오.

+0

처럼 좋아. 그래, 큰 숫자에 대해서는 우스운 일이다. 나는 "오 아마도 우리가 걱정할 필요가없는 그 큰 번호 ... 2^63 초는 아마도 그다지 오래되지 않았을 것"이라고 생각했습니다. 이 대답에 만족합니다. – Ziggy

+1

나는이 문제에 관한 위키 백과 문서를 좋아한다. 부호있는 64 비트 값을 사용하면 12 월 4 일 일요일 15:30:08에 292,277,026,596의 새 랩 어라운드 날짜가 도입됩니다. 적어도 저에게는 문제가되지 않을 것입니다. –

+1

이런 종류의 일이 일어날 지 모른다는 생각에 슬픈 일이 있습니다. 지금으로부터 약 3 천억 년 후에. 너무 조심하세요. – Brenden

관련 문제