“Gestalt”是什么作用?

3
在Mac OS X中,函数gestalt是做什么用的?它有什么作用?能否给出一个简短的例子?我知道它与系统调用有关,但具体是什么呢?

http://www.cocoadev.com/index.pl?DeterminingOSVersion - Mattias Wadman
这个名称在旧的Mac OS中有着悠久的历史:http://tinyurl.com/6dyah7m(由于SO在标题中弄乱了括号,所以不得不使用tinyurl)。 - asveikau
1个回答

9
Gestalt能够提供有关应用所在系统的详细信息,例如操作系统版本。以下是一个简单的示例,获取运行二进制文件的系统上Mac OSX的版本:
#include <stdio.h>
#include <Gestalt.h>

int main() {
    SInt32 versMaj, versMin, versBugFix;
    Gestalt(gestaltSystemVersionMajor, &versMaj);
    Gestalt(gestaltSystemVersionMinor, &versMin);
    Gestalt(gestaltSystemVersionBugFix, &versBugFix);

    printf("Mac Version: %d.%d.%d\n", versMaj, versMin, versBugFix);
}

使用以下命令编译并运行此测试:

gcc -framework Carbon test.c && ./a.out

你可能还需要像 -I/Developer/Headers/FlatCarbon/ 这样的标志。

这应该会得到类似于:Mac 版本:10.6.8 的响应。

我在阅读 官方文档 后创建了这个示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接