San*_*osh 11 windows perl 64-bit
使用Perl,如何确定我的程序是在32位Windows还是64位Windows上运行?
有没有可用的API?
我可以想到几个选择..
检查一些Windows文件的PE_HEADER(例如:) c:\windows\explorer.exe- 也许我可以使用详细信息如何测试windows dll以确定它是32位还是64位?
检查是否存在c:\program files(x86)- 如果存在则则为64位操作系统.否则它是一个32位Windows操作系统.
这样做有什么好办法吗?Perl中可用的任何API?
Sys :: Info看起来很有希望:
#!/usr/bin/perl
use strict; use warnings;
use Sys::Info;
my $info = Sys::Info->new;
my $cpu = $info->device('CPU');
printf "%s (%s bit)\n", scalar $cpu->identify, $cpu->bitness;
my $os = $info->os;
printf "%s (%s bit)\n", $os->name(long => 1), $os->bitness;
Run Code Online (Sandbox Code Playgroud)
输出:
C:\Temp> t Genuine Intel(R) CPU T2300 @ 1.66GHz (64 bit) Windows XP Service Pack 3 build 2600 (32 bit)
请注意,它错误地将我的笔记本电脑的CPU识别为64位(请参阅提交的英特尔®酷睿™双核处理器T2300 -bug报告).