2010-04-08 20 views
8

Si estoy trabajando en una máquina Unix, ¿cómo podría saber el tamaño de la máquina si es de 64 bits o 32 bits máquina?tamaño de la máquina 64 o 32 bits

+0

Compruebe el tamaño de los punteros si está disponible en tu idioma Sé más específico. – Guillaume

Respuesta

17

AIX usted puede hacer esto:

getconf KERNEL_BITMODE 

HP-UX usted puede hacer esto:

getconf KERNEL_BITS 

o simplemente:

getconf -a | grep KERN 

Sun Solaris usted puede hacer esto:

isainfo -v 

Para Linux, sí, el uname -a debe hacer el truco

+0

como estoy trabajando en HP ... getconf -a no está funcionando ... pero getconf KERNEL_BITS está funcionando bien. – Vijay

+0

android? : D ... me las arreglé para instalar LinuxOnAndroid (dispositivo rooteado) y getconf -a | grep KERN devuelve nada :(también uname -m, o el arco vuelve armv71 – THESorcerer

+0

Estos comandos sólo se mostrará el modo de tamaño de bits del kernel instalado Para posibles modos de CPU, busque en 'lscpu' o al [respuesta es otra pregunta] (https:. // stackoverflow .com/a/246.014). – Dominik

0

Suponiendo que usted quiere hacer esto en tiempo de compilación - echar un vistazo here para las macros de arquitectura se pueden probar. Probablemente estés buscando __x86_64__.

2

Si usted está buscando para comprobar la arquitectura de una máquina que estás,

%> uname -a 

desde la línea de comandos por lo general contiene una indicación en la salida.

6

que tienen que lidiar con una gran cantidad de plataformas Unix y en general la mejor manera que he encontrado es mirar a la salida de "uname -a". Por ejemplo, si ve algo como "i686 i686 i386 GNU/Linux" en la salida, sabe que es una máquina de 32 bits. Si aparece "amd64", es un 64. A veces se trata de intentar ejecutar un programa de 64 bits. A veces es RTFM.

1

También puede intentar sizeof(int *). Deberían ser 4 en máquinas de 32 bits y 8 en máquinas de 64 bits.

+0

no hay ninguna razón por la que no puedo apuntar a un ejecutable de 32 bits en un equipo de 64 bits. Donde yo trabajo, no nos hemos preocupado de cambiar algunas aplicaciones de 64 bits (aunque algunos comen la memoria por el gigabyte, y deben ejecutarse en máquinas de 64 bits). –

7

Puede escribir

uname -m 

si i686 o el i386 está apareciendo, se trabaja con 32 bits si X86_64 está apareciendo, se trabaja con 64 bits

Cuestiones relacionadas