决定 OS 在执行期间
我们 ISO C, 我们 POSIX 不要提供功能以确定基本 OS 在执行期间。 从理论的角度来看,这无关紧要,因为 C 为最常见的系统挑战提供包装,以及选择 nit-picking 甚至不
是
基本的 OS.
但是,在许多真实场景中,它证明了解主机环境的有用 C 例如,我准备分享,找出存储配置文件或如何调用的位置
, 所以:
写入的应用程序是否有类似的方法 C, 确定基本 OS 在执行期间?
至少如果我可以轻松选择 Linux, Windows, BSD 和 MacOS?
我目前的假设是 , 检查某些 files/directories,, 如
或者
, 但这种方法似乎不可靠。 也许关于许多这些来源的调查将有助于建立一个概念。 "OS 指纹", 从而提高了可靠性。 无论如何,我期待着您的建议。
是
基本的 OS.
但是,在许多真实场景中,它证明了解主机环境的有用 C 例如,我准备分享,找出存储配置文件或如何调用的位置
select//
, 所以:
写入的应用程序是否有类似的方法 C, 确定基本 OS 在执行期间?
至少如果我可以轻松选择 Linux, Windows, BSD 和 MacOS?
我目前的假设是 , 检查某些 files/directories,, 如
C:\
或者
/
, 但这种方法似乎不可靠。 也许关于许多这些来源的调查将有助于建立一个概念。 "OS 指纹", 从而提高了可靠性。 无论如何,我期待着您的建议。
没有找到相关结果
已邀请:
5 个回复
诸葛浮云
赞同来自:
, 显示当前 kernel 正在使用。 在 Mac OS, 这通常是 "Darwin", 在 Linux 这很简单 "Linux", "ERROR" 在 Windows 这是我 FreeBSD 返回 "FreeBSD".
http://en.wikipedia.org/wiki/Uname
我几乎确定有一个等价物 C 为了
, 所以你不需要
冰洋
赞同来自:
你在系统中 POSIX, 你可以打电话 uname// 的
.
这显然不是 100% 便携式,但我认为不会有任何方法可以在执行期间提供它。
阅读更多
http://www.unix.com/man-page/P ... me.h/
</sys>
三叔
赞同来自:
s 对平台敏感的代码。
冰洋
赞同来自:
, 但没有给出最低工作的例子,这样它就是为了每个人都感兴趣,我希望它能拯救你带我的时间:
/可能的/ 出口:
OS: Linux
PS: 不幸的是,这个标题在这里使用。 POSIX:
https://coderoad.ru/5773281/
, 这很可能不起作用 Windows.
</sys></stdlib.h></stdio.h>
八刀丁二
赞同来自:
甚至同意这一事实 "Runtime isn't the time to determine this..."