c++获取mac操作系统的版本号

    最近项目需要判断mac系统是否低于10.15.但是一直不知道怎么获取,这次记录一下获取方式。

    首先Qt当中有一个QSysInfo类,按道理是可以获取到系统版本的。但是我们看下面这个函数,它的返回值MacVersion是一个枚举,这个枚举最多能获取到10.12的系,显然不符合我们的要求。

 

   所以,我们只有另辟蹊径,幸好在mac下有utsname,它可以获取到一个和系统版本号有极大关联的一个称之为Darwin kernel的版本。简单来说Darwin是OS X的一个组件,是操作系统的类 UNIX 核心,本身由内核(kernel)、XNU(“X is Not UNIX”的缩写,这

个缩写类似于 GNU 的递归式缩写)和运行时组成。

   它的版本关系和系统版本有以下关系:If (OSX.version == 10.x.y) Darwin.version = (4+x).y

    所以获取到Darwin的版本就变相获取到了系统版本

#include <sys/utsname.h>
int uname(struct utsname *name);

#define    _SYS_NAMELEN    256
struct    utsname {
    char    sysname[_SYS_NAMELEN];    /* [XSI] Name of OS */
    char    nodename[_SYS_NAMELEN];    /* [XSI] Name of this network node */
    char    release[_SYS_NAMELEN];    /* [XSI] Release level */
    char    version[_SYS_NAMELEN];    /* [XSI] Version level */
    char    machine[_SYS_NAMELEN];    /* [XSI] Hardware type */
};

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值