2010-04-08 1 views
8

Se sto lavorando su una macchina Unix, come faccio a sapere la dimensione della macchina se si tratta di una macchina a 64-bit o 32-bit?dimensioni della macchina 64 o 32 bit

+0

Controllare la dimensione dei puntatori, se disponibili in la tua lingua Sii più preciso. – Guillaume

risposta

17

AIX si può fare questo:

getconf KERNEL_BITMODE 

HP-UX si può fare questo:

getconf KERNEL_BITS 

o semplicemente:

getconf -a | grep KERN 

Sun Solaris si può fare questo:

isainfo -v 

Per Linux, sì, il uname -a dovrebbe fare il trucco

+0

mentre sto lavorando su hp ... getconf -a non funziona ... ma getConf KERNEL_BITS funziona correttamente. – Vijay

+0

android? : D ... riesco a installare LinuxOnAndroid (dispositivo rooted) e getconf -a | grep KERN non restituisce nulla :(anche uname -m, o arch restituisce armv71 – THESorcerer

+0

Questi comandi mostrano solo la modalità di dimensione del bit del kernel installata. Per le possibili modalità della CPU, guarda in 'lscpu' o alla [risposta di un'altra domanda] (https: // stackoverflow .com/a/246014). – Dominik

0

Supponendo di voler eseguire questa operazione in fase di compilazione, dai un'occhiata a here per i macro di architettura che puoi testare. Probabilmente stai cercando __x86_64__.

2

Se stai solo cercando di controllare l'architettura di una macchina si è in,

%> uname -a 

dalla riga di comando di solito contiene un'indicazione in uscita.

6

Ho a che fare con un sacco di piattaforme Unix e in genere il modo migliore che ho trovato è guardare l'output di "uname -a". Ad esempio, se vedi qualcosa come "i686 i686 i386 GNU/Linux" nell'output, sai che è una macchina a 32 bit. Se "amd64" compare è un 64. A volte si tratta di provare a eseguire un programma a 64 bit. A volte è RTFM.

1

Si può anche provare sizeof(int *). Dovrebbe essere 4 su macchine a 32 bit e 8 su macchine a 64 bit.

+0

Non c'è motivo per cui non riesca a scegliere un eseguibile a 32 bit su un computer a 64 bit. Dove lavoro, non ci siamo preoccupati di cambiare alcune app a 64 bit (anche se alcuni mangiano memoria dal gigabyte, e devono essere eseguiti su macchine a 64 bit). –

7

È possibile digitare

uname -m 

se i686 o i386 sta per apparire, si sta lavorando con 32 bit se X86_64 sta apparendo, si sta lavorando con 64 bit