Return to Snippet

Revision: 18881
at October 11, 2009 10:26 by Zydeco


Initial Code
int getSystemVersion(void)  
{  
    /* system version as MMmmff */  
    OSErr   err;  
    long    vMaj, vMin, vFix, version;  
      
    err = Gestalt(gestaltSystemVersionMajor, &vMaj);  
    if (err != noErr) {  
        // must use old selector  
        err = Gestalt(gestaltSystemVersion, &version);  
        if (err != noErr) return 0;  
        vMaj = ((version & 0xF000) >> 12) * 10 + ((version & 0x0F00) >> 8);  
        vMin = (version & 0x00F0) >> 4;  
        vFix = (version & 0x000F);  
    }  
    else {  
        // get version numbers this way (10.4 and above)  
        err = Gestalt(gestaltSystemVersionMinor, &vMin);  
        if (err != noErr) return 0;  
        err = Gestalt(gestaltSystemVersionBugFix, &vFix);  
        if (err != noErr) return 0;  
    }  
      
    return (vMaj * 10000) + (vMin * 100) + vFix;  
}

Initial URL


Initial Description
Full Mac OS X system version  
Returns the full Mac OS X system version, as MMmmff

Example:

* 10.0.1 returns 100001
* 10.4.2 returns 100402
* 10.4.11 returns 100411
* 10.5.3 returns 100503

It's different from gestaltSystemVersion in that this supports minor and bug fix revisions larger than 9.

Initial Title
Mac OS X System Version

Initial Tags
mac, osx

Initial Language
C