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