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
risposta
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
mentre sto lavorando su hp ... getconf -a non funziona ... ma getConf KERNEL_BITS funziona correttamente. – Vijay
android? : D ... riesco a installare LinuxOnAndroid (dispositivo rooted) e getconf -a | grep KERN non restituisce nulla :(anche uname -m, o arch restituisce armv71 – THESorcerer
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
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__
.
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.
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.
Si può anche provare sizeof(int *)
. Dovrebbe essere 4 su macchine a 32 bit e 8 su macchine a 64 bit.
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). –
È 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
Controllare la dimensione dei puntatori, se disponibili in la tua lingua Sii più preciso. – Guillaume