On Feb 11, 2008 4:26 PM, mateusgra <[EMAIL PROTECTED]> wrote:
> Tenho um servidor freeBSD 6.2 / AMD64 com 4GB de ram qdo eu executo o comando 
> para liberar mais memoria compartilhada "sysctl -w 
> kern.ipc.shmmax=3145728000" que seria 3GB ele transforma esse numero em 
> "-1149239296" o numero fica negativo não tem como liberar mais memoria ?

O sysctl está configurando o valor corretamente, mas exibindo errado.
O problema é que o valor é guardado num inteiro de 32 bits. O número
-1149239296, quando quardado em 32 bits na notação de complemento de
2, tem a mesma representação que 3145728000. Para ver isto basta
digitar, na linha de comando

     % printf '0x%x\n' 3145728000
     0xbb800000
     % printf '0x%x\n' -1149239296
     0xffffffffbb800000

No segundo caso os "ffffffff" mais à esquerda podem ser desprezados.
Eles aparecem porque o printf usa inteiros de 64 bits.

-- 
Carlos A. M. dos Santos
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

Responder a