仅使用open(),read(),write()和close()进行OS检测

时间:2013-05-29 11:18:16

标签: system-calls

我正在编写一些代码,这些代码将在虚拟机管理程序下运行,该虚拟机管理程序只允许打开,读取,写入和关闭系统调用到外部世界。

由于部分代码依赖于正在运行的平台,我希望能够在运行时自动选择适当的代码路径。

仅使用这些系统调用来检测操作系统的最强大的方法是什么?我主要对检测windows和linux感兴趣,但osx也很有用。

1 个答案:

答案 0 :(得分:1)

uname监视/ proc / sys / kernel / ostype,你可以使用它。 对于Windows来说,情况更糟。理论上,你应该有C:\ windows \ system32 \ kernel32.dll。但是,问题是Windows安装根不需要是'C:\'(虽然它很常见) - 所以我非常怀疑普通的open()是否可以被认为是可靠的。