Что делает "Гештальт"? - PullRequest
       0

Что делает "Гештальт"?

2 голосов
/ 07 января 2012

В Mac OS X, что делает функция gestalt?Для чего его используют?Не могли бы вы привести краткий пример?Я знаю, что это как-то связано с системными вызовами, но что именно?

1 Ответ

8 голосов
/ 07 января 2012

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 Version: 10.6.8

Я создал этот пример после прочтения официальных документов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...