2009-09-01 35 views
2

我正在尋求區分Core Solo/Duo和Core 2 Duo處理器的64位支持。檢測Mac OS X上的Ruby 64位CPU

在酷睿2,然後`sysctl hw.cpu64bit_capable`給出1,如所期望的,但在32位處理器,它引發錯誤,說:

second level name cpu64bit_capable in hw.cpu64bit_capable is invalid 

什麼是檢測一個64位的最佳方式處理器?

謝謝。

回答

4

通過查看命令的返回值,您仍然可以使用您的sysctl命令。

$ irb 
>> system("sysctl hw.cpu64bit_capable > /dev/null 2>&1") 
=> true 

在32位CPU上它應該返回false


或者,這取決於你真正尋找的,你可以測試64位EFI與ioreg,但我認爲你的CPU可能仍然有32位EFI 64位。

在64位EFI的機器,你會得到這樣的:

$ irb 
>> system("ioreg -l -p IODeviceTree | grep firmware-abi | grep -q EFI64") 
=> true 

在缺乏64位EFI的機器,你會得到false