размер машины 64 или 32 бит - PullRequest
8 голосов
/ 08 апреля 2010

Если я работаю на машине с Unix, как я могу узнать размер машины, будь то 64-битная или 32-битная машина?

Ответы [ 6 ]

17 голосов
/ 08 апреля 2010

AIX Вы можете сделать это:

getconf KERNEL_BITMODE

HP-UX Вы можете сделать это:

getconf KERNEL_BITS

или просто:

getconf -a | grep KERN

Sun Solaris Вы можете сделать это:

isainfo -v

Для Linux, да, uname -a должен добиться цели

7 голосов
/ 22 августа 2013

Вы можете набрать

uname -m 

если появляется i686 или i386, вы работаете с 32-битным если появляется X86_64, вы работаете с 64-битным

6 голосов
/ 08 апреля 2010

Мне приходится иметь дело со многими платформами Unix, и в целом лучший способ, который я нашел, это посмотреть на вывод "uname -a". Например, если вы видите в выводе что-то вроде «i686 i686 i386 GNU / Linux», вы знаете, что это 32-битная машина. Если появляется «amd64», то это 64. Иногда нужно попытаться запустить 64-битную программу. Иногда это RTFM.

2 голосов
/ 08 апреля 2010

Если вы просто хотите проверить архитектуру машины, на которой вы работаете,

  %> uname -a

из командной строки обычно содержит указание в выходных данных.

1 голос
/ 08 апреля 2010

Вы также можете попробовать sizeof(int *).Должно быть 4 на 32-битных машинах и 8 на 64-битных машинах.

0 голосов
/ 08 апреля 2010

Если вы хотите сделать это во время компиляции - посмотрите здесь на макросы архитектуры, которые вы можете протестировать Вы, вероятно, ищете __x86_64__.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...