Windows:从 Cygwin 确定 C 语言的操作系统版本

问题描述 投票:0回答:1

我有一些在 Cygwin 环境中运行的代码,这使得 Windows 看起来像 Unix。 我想获取操作系统版本,但 Posix 函数调用 uname 不存在。 还有其他方法可以以编程方式获取它吗? 我正在使用 GCC 编译器; 我没有安装任何微软开发软件。

windows winapi operating-system cygwin
1个回答
0
投票

试试这个:

#include <stdio.h>
#include <sys/utsname.h>

int main(int argc, char *argv[])
{
    struct utsname utsname;
    if (uname(&utsname) == 0) {
        printf("sysname = %s\n", utsname.sysname);
        printf("nodename = %s\n", utsname.nodename);
        printf("release = %s\n", utsname.release);
        printf("version = %s\n", utsname.version);
    #if __GNU_VISIBLE
        printf("domainname = %s\n", utsname.domainname);
    #else
        printf("domainname = %s\n", utsname.__domainname);
    #endif
    }
    return 0;
}

输出:

sysname = CYGWIN_NT-10.0-22621
nodename = hostname
release = 3.4.5-1.x86_64
version = 2023-01-19 19:09 UTC
domainname =
© www.soinside.com 2019 - 2024. All rights reserved.