系统架构

发布于 2024-08-11 18:53:23 字数 38 浏览 4 评论 0原文

如何判断当前运行的Mac OS X系统是32位还是64位机器?

How do I determine whether the currently running Mac OS X system is of 32bit or 64bit machine?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

月棠 2024-08-18 18:53:23

这取决于你所说的“64位机器”是什么意思。根据处理器系列,大致分为三个类别:

  1. 支持一些 64 位数学运算
  2. 可以在 X-64 模式下运行程序(64 位寻址)
  3. 具有 64 位内核支持

我假设您在这里指的是“2”,因为那是与应用程序代码最相关。我相信,除非您需要在较旧的 PowerPC Mac 上运行,否则您不必担心意义“1”。

您特别提到在 C 代码中执行此操作,这实际上没有多大意义。如果您正在编译 C 代码,则可以使用 32 位和 64 位变体构建“胖”应用程序,因此可以在编译时使用以下命令进行检查:

#if _LP64
//64-bit stuff
#else
//32-bit stuff
#endif

It depends on what you mean by "64 bit machine". There are broadly three categories depending on processor family:

  1. Supports some 64-bit math operations
  2. Can run programs in X-64 mode (64-bit addressing)
  3. Has 64-bit kernel support

I assume that you mean sense "2" here, since that's the most relevant for application code. You don't have to worry about sense "1" unless you need to run on older PowerPC Macs, I believe.

You specifically mentioned doing this in C code, which doesn't actually make much sense. If you're compiling C code, you can just build your application "fat", with 32- and 64- bit variants, and therefore do the check at compile-time with:

#if _LP64
//64-bit stuff
#else
//32-bit stuff
#endif

我相当确定 32 位系统上的 sizeof(long) == 4 和 64 位系统上的 sizeof(long) == 8 。指针也应该如此。

I'm fairly certain that sizeof(long) == 4 on 32-bit systems and sizeof(long) == 8 on 64-bit systems. The same should be true of pointers.

只为守护你 2024-08-18 18:53:23

有点 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]; 中...?

a little greppy, but ..

#!/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

wrapped in an NSTask *task = [[NSTask alloc] init]; ...?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文