----- Original Message ----- From: "Joao Rocha Braga Filho" <[EMAIL PROTECTED]>
2008/1/18 Josias LG <[EMAIL PROTECTED]>: > http://uoltecnologia.blog.uol.com.br/arch2008-01-13_2008-01-19.html#2008_01-17_20_57_59-126529944-29 > > O titulo do post já dá pistas: vem mais encrenca por aí. Mal saímos do > bug do milênio e já estão preocupados com outro. > > Na mesma linha do bug anterior, este também tem a ver com tempo e datas. > O problema afeta programas que utilizam a representação de tempo Posix > (Interface portátil entre sistemas operacionais), baseada em Unix - > sistema operacional que controla a maioria dos servidores. > > Nessa representação, o tempo é cálculado desde 1o de janeiro de 1970 e > usa um número binário (representado por zeros e uns) de 32 bits. A > última data que pode ser representada nesse formato é 03:14:07 de 19 de > janeiro de 2038 (32 números 1 seguidos). > > Após esse momento, a data será representada por um número decimal > negativo (foto). Isso fará o calendário voltar para 1970 ou 1901, > afetando a maioria dos programas executados pelo sistema. Bug a vista! > > PS - E dessa vez não vai ser tão simples resolver. Mudar a base de dados > para 64 bits. A mudança quebraria a compatibilidade binária de alguns > softwares. O Zip - compactador - foi construído para 32 bits. Muitos > sistemas embarcados feitos até 2006 usam arquitetura de 32 bits. Tomara > que consigam fazer a migração dos sistemas até 2038. No aguardo e > torcendo! > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd Bug velho. Eu sei deste bug deste a década de 90. Mas existe um Workaround, tornar o tipo time_t unsigned. O bug passa a ser em 2107. Já fiz as contas a uns 15 anos atrás. -------------- João, É isso mesmo... se cada ano tem 31.536.000 segundos (60 X 60 X 24 X 365 - Segundos por minuto X Minutos por hora X Horas por dia X Dias por ano), 32 bits poderiam representar 136 anos (que a partir de 1970 nos levariam até 2106), mas parece que só utilizam 31bits (signed int) o que pode representar apenas 68 anos que vai nos levar até o ano de 2038. 32^2 = 4.294.967.295 31^2 = 2.147.483.647 luiz ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

