Windows:从Cygwin确定C中的OS版本

pkwftd7m  于 2023-10-22  发布在  Windows
关注(0)|答案(1)|浏览(131)

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

bprjcwpo

bprjcwpo1#

试试这个:

#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 =

相关问题