我知道可以使用终端和system-profiler命令来确定内核的当前位数,但我正在尝试以编程方式在objective-c中获取相同的信息。
我已经查看了Carbon的gestalt,但没有找到任何告诉我内核位数的东西。你有什么建议吗?我需要这些信息用于调试报告,该报告在报告时给出系统的快照。
更新:我尝试过的一个技巧是从Windows世界学到的,即检查int的大小。
但我认为这并不是一个解决方案,因为我认为这只会让我知道实际程序运行的情况,而不是实际的操作系统内核。我的理解是,即使操作系统内核运行在32位,您的程序仍然可以运行在64位。
我遇到过其他类似于这个帖子的论坛帖子,但它们似乎都没有得出答案,除了使用system_profiler。
我已经查看了Carbon的gestalt,但没有找到任何告诉我内核位数的东西。你有什么建议吗?我需要这些信息用于调试报告,该报告在报告时给出系统的快照。
更新:我尝试过的一个技巧是从Windows世界学到的,即检查int的大小。
sizeof(int*); //(4 = x86 8 = x64)
但我认为这并不是一个解决方案,因为我认为这只会让我知道实际程序运行的情况,而不是实际的操作系统内核。我的理解是,即使操作系统内核运行在32位,您的程序仍然可以运行在64位。
我遇到过其他类似于这个帖子的论坛帖子,但它们似乎都没有得出答案,除了使用system_profiler。
struct utsname un;
- 在这方面我仍然经常思考C++。这将为您提供内核构建的机器类型,这正是您要寻找的。 - Georg Fritzsche