1

MacOSが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プログラマーではありませんが、最大32ビット整数に1を加算して、オーバーフローした値に対してそれをチェックしてみてはどうでしょうか。等しい場合は、32ビットを使用しています...

于 2012-06-05T12:48:03.187 に答える
0

1つの可能性は、「arch」と呼ぶことです。

すぐに入力したスクリプトは次のようになります。

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

ただし、archターミナルコマンドラインで「」と入力すると、「i386」が出力されます。x86_64私のMacProタワーは64ビット対応です(すべてではないにしても一部のアプリは64ビットモードで実行されます)ので、代わりに「」出力が表示されない理由がわかりません。

于 2012-06-05T12:38:37.267 に答える
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 に答える