1

我想确定 Mac OS 是 32 位还是 64 位。

谁能帮我写下 Perl 脚本?

4

4 回答 4

2

不清楚你想要什么。

要查找用于 的指令集perl,您可以使用以下命令:

$ perl -V:myarchname
myarchname='x86_64-linux';

(相对于i686-linux.)

要查找 使用的整数的大小perl,可以使用以下命令:

  $ perl -V:ivsize
  ivsize='4';

(相对于8.)

可以从 Perl 中访问这些值,如下所示:

use Config qw( %Config );
say $Config{myarchname};
say $Config{ivsize};
于 2012-06-05T17:48:14.597 回答
1

我不是 perl 程序员,但是尝试将 1 加到最大 32 位整数并根据溢出值检查它怎么样?如果相等,则您使用的是 32 位...

于 2012-06-05T12:48:03.187 回答
0

您可以检查输出uname -a并查看它是否显示i386x86_64结尾:

#! /usr/bin/env perl

use strict;
use warnings;
use feature qw(say);
no warnings qw(uninitialized);

if (not -x "/usr/bin/uname") {
    say "Can't determine system bit mode: uname command not found";
}
else {
    chomp ( my $arch_type = qx(/usr/bin/uname -a) );
    if (not $arch_type) {
        say "Can't determine system bit mode";
    }
    elsif ($arch_type =~ /x86_64$/) {
        say "System is in 64 bit mode";
    }
    else {
        say "System is in 32 bit mode: $arch_type";
    }
}
于 2012-06-05T17:01:48.423 回答
0

一种可能性是调用“ arch”。

我刚刚快速键入的脚本如下所示:

#!/usr/bin/perl -w
$arch=`arch`;
print $arch;

但是,当我在arch终端命令行中输入“”时,会得到“ i386”的输出。我的 Mac Pro 塔式机支持 64 位(如果不是全部,一些应用程序以 64 位模式运行),所以我不确定为什么我没有看到 " x86_64" 输出。

于 2012-06-05T12:38:37.267 回答