如何确定当前运行的Mac OS X系统是32位还是64位机器?系统架构
系统架构
回答
我很确定在32位系统上的sizeof(long) == 4
和在64位系统上的sizeof(long) == 8
。指针也应该是这样。
这可以让你确定你的应用程序是否编译为64位或32位,它不会让你知道,如果你在64位或32位系统上运行。虽然可以假设指针大小为8,这意味着系统是64位,如果是4,那么您可以在64位系统上运行32位二进制。 – 2009-11-18 09:45:33
有点greppy,但..
#!/bin/sh
ioreg -l -p IODeviceTree | grep EFI64
if [ $? = 0 ]
then
echo "I am a 64bit machine!"
else
echo "I am a 32bit machine!"
fi
包裹在一个NSTask *task = [[NSTask alloc] init]; ...
?
我们确定这个脚本是否有效?在运行10.5.8的Intel Core 2 Duo上,我总是获得32位的结果。 (铝制MacBook,1岁)。但是,当我运行'ioreg -l -p IODeviceTree | grep EFI64'没有脚本的其余部分,我看到64位结果(''firmware-abi“= <"EFI64">' – 2009-11-19 17:29:32
好吧,我无法在我的机器上测试它,只是在不同的地方阅读(http ://www.9to5mac.com/snow-leopard-64-bit-32-bit-firmware-efi,http://blog.galensprague.com/?p=200);我昨天听到很多关于胶水代码的消息在技术讲座,所以我只是张贴它.. 确实: ioreg -l -p IODeviceTree | grep固件-abi | grep -o EFI32'' 产生其他/更好的结果? – miku 2009-11-19 17:36:21
这取决于你的意思是“64位机器”。有大致三类取决于处理器家族:
- 支持一些64位的数学运算
- 可以在X-64模式程序(64位寻址)
- 有64位内核支持
我假设你的意思是“2”,因为这与应用程序代码最相关。我相信,除非你需要运行在老式的PowerPC Mac上,否则你不必担心“1”的感觉。
您特别提到了在C代码中这样做,这实际上没有多大意义。如果你正在编译的C代码,你可以建立自己的应用程序“胖”,有32位和64位的变体,因此做检查在编译时间:
#if _LP64
//64-bit stuff
#else
//32-bit stuff
#endif
- 1. SFML粒子系统架构
- 2. 报告系统架构
- 3. 模块化系统架构
- 4. 标签系统的架构
- 5. Netflix/Hulu系统架构
- 6. 联系人管理系统架构
- 7. 开放源代码云操作系统/操作系统架构
- 8. 系统架构图中的“云架构”概念
- 9. 如何分析系统架构?
- 10. 用于系统架构的Visio模具
- 11. Java中,系统架构,正确实施
- 12. VB.NET多线程和系统架构
- 13. 用户通知系统的架构
- 14. 为x86架构开发操作系统
- 15. 游戏照明系统架构
- 16. 如何动态获取系统架构?
- 17. 敏捷架构的系统故事
- 18. BDB文件是否可以从一个系统架构移植到另一个系统架构
- 19. Zend框架 - 基于模块的系统架构
- 20. PHP构建系统
- 21. MongooseJS架构关系
- 22. Symfony框架投票系统
- 23. 通过系统框架
- 24. Facebook风格的消息系统架构设计
- 25. 这是确定操作系统架构的好方法吗?
- 26. 优惠券代码系统架构设计建议
- 27. 一个能够创建系统架构图的工具
- 28. 构建工作流管理系统的PHP框架
- 29. Java:在dll之间切换取决于系统架构(32/64)
- 30. 系统架构,使用API集成两个应用程序
另外一个重复的,虽然到公平的重复没有被接受的答案。 http://stackoverflow.com/questions/853798/programmatically-get-processor-details-from-mac-os-x – GManNickG 2009-11-18 08:29:52
什么编程语言? – Asaph 2009-11-18 08:29:57
哦,是的,我想我不应该假设在重复开心之前。 :X – GManNickG 2009-11-18 08:30:25