我在irc.quakenet.org #cplusplus频道上,一些开发人员开始讨论,并开始尝试并思考一种在运行时确定当前操作系统的方法。我们知道如何在编译时很轻松地做到这一点,并且在运行时做到这一点没有意义,但我们只是想挑战。到目前为止,我们还没有想出在运行时执行此操作的确定方法。有谁知道任何允许这样做的解决方案/黑客/技巧/等等?
它必须是编译时间和运行时逻辑的组合。
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句