[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: saíd a do comando df maluca (tamanhos negativ os de disco)



Nada contra, mas realmente fico triste com os chutoes da lista, voce
claro ateh disse que foi um chute, mas veja como o seu chute gerou
mais 10 posts falando de problemas encontrados no windows por causa de
um erro parecido e que o tsunami.....

Mas como fiquei feliz por que acho que consegui explicar parte do meu
ponto de vista (ja muito debatido na lista). Vou ateh postar codigos
exemplo.

/* Programa feito para estourar um variavel int
 * GPL claro, mas ninguem quer usar isso neh?
 */

#include <stdio.h>
#include <math.h>

#define INT_SIZE        sizeof(int)

int main(void) {
        int x = 0;
        int lim = 0;

        printf ("Tamanho de int eh: %i bytes\n", INT_SIZE);

        lim = (int)pow(2,(INT_SIZE*8)) - 1;
        printf ("Portanto o limite eh o numeral %i\n", lim);

        lim += 5;
        printf ("Limite +5 eh igual a: %i\n", lim);
        printf ("Opssss.\n");
}

Compilar com gcc estouro.c -o estouro -lm

igor@numenor:~$ ./estouro
Tamanho de int eh: 4 bytes
Portanto o limite eh o numeral 2147483647
Limite +5 eh igual a: -2147483644
Opssss.

Olha so a saida... ;-)

Os motivos para isso acontecer eh o problema de alocacao de variaveis
em memoria e sinais, o bit da esquerda eh usado para gravar o sinal (0
ou 1) (+ ou -), caso voce ultrapasse este limite voce AUTOMATICAMENTE,
esta dizendo q o numero passa a ser um negativo, o que leva a um
problema em tempo de execucao de somar o menor numero inteiro possivel
dentro de um int.

E o Woody eh ANTIGO, muito ANTIGO.

-- 
Quando eu falar pra você RTFM, não fique chorando.
Vá até o google, e faça a mesma pergunta.

Antes de perguntar leia:
http://focalinux.cipsga.org.br/
http://debian-br.alioth.debian.org/view.php?doc=pratico
http://debian-br.alioth.debian.org/view.php?doc=apt-howto



Reply to: