首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行时确定操作系统?

在运行时确定操作系统?
EN

Stack Overflow用户
提问于 2014-07-07 19:55:47
回答 1查看 32关注 0票数 1

我在irc.quakenet.org #cplusplus通道上,一些开发人员开始交谈,并开始想出在运行时确定当前操作系统的方法。我们知道如何在编译时很容易地做到这一点,并且在运行时这样做是没有意义的,但我们只是想要一个挑战。到目前为止,我们还没有想出一个可靠的方法在运行时做到这一点。有人知道有什么解决方案/黑客/诡计/等等会允许这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-07 20:03:19

它必须是编译时和运行时逻辑的组合。

代码语言:javascript
复制
char *get_os_name (void);

#ifdef _LINUX
    char *get_os_name (void)
    {
         static nm [1000];
         FILE *f = fopen ("/proc/version", "r");
         if (!f  &&  !fgets (nm, sizeof nm, f))
               return NULL;  /* could next try uname(), etc. */
         fclose (f);
         return nm;
    }
#endif

#ifdef _WIN32
    char *get_os_name (void)
    {
         OSVERSIONINFO   vi;

         memset (&vi, 0, sizeof vi);
         vi .dwOSVersionInfoSize = sizeof vi;
         GetVersionEx (&vi);
         switch (vi.dwPlatformId)
         {
         case VER_PLATFORM_WIN32_NT:  return "Win32";
         ...
         }
    }
#endif
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24618752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档