跨平台关闭计算机的方式

时间:2014-11-06 13:52:07

标签: c++ operating-system

我想实现一个跨程序功能来关闭计算机而不使用任何系统特定的API,但是" stdlib.h" std :: system函数。我几乎没有在网上找到任何关于它的可靠资源。

在Windows系统上,以下工作:

#if defined(_WIN32) || defined(__WIN32) || defined(__WIN32__)
std::system("shutdown -s -t 0");
#endif

其他操作系统(如Linux,Mac OSX等)上的命令应该是什么?

2 个答案:

答案 0 :(得分:2)

没有跨平台关机命令。

您需要查看要拥有它的操作系统中的shutdown命令,然后检查客户端运行的操作系统,并根据您可以选择正确的命令或代码来关闭特定系统。 / p>

答案 1 :(得分:2)

在* nix系统上,以下内容应该有效。

#include <cstdlib>

int main() 
{
  system("shutdown -P now");
  return 0;
}

但是,上面的代码假定您以root用户身份登录,如果不是,则在未以root用户身份登录时会出现错误。

没有&#34;跨平台&#34;执行此操作的方法除了使用switch语句或if - else语句系列以获得指定OS的正确语法。