gpt4 book ai didi

c++ - 如何从 C++ 程序内部重新启动 Linux?

转载 作者:IT老高 更新时间:2023-10-28 21:43:34 27 4
gpt4 key购买 nike

我有一个 Qt 4 GUI,我需要在下拉菜单中有一个选项,允许用户选择重新启动计算机。我意识到这似乎与以其他方式重新启动计算机的能力无关,但选择需要留在那里。我尝试使用 system() 调用以下内容:

  1. suid-root shell 脚本
  2. 一个非 suid 的 shell 脚本
  3. suid-root 二进制程序

所有这些都只是导致

reboot: must be superuser
要打印。使用 system() 直接调用 reboot 做同样的事情。我并不是特别喜欢使用 system() 来执行此操作,但它似乎是最直接的选择。

如何从 GUI 重新启动系统?

最佳答案

reboot 功能在 Linux Programmer's Manual 中描述。 .在 glibc 下,您可以传递 RB_AUTOBOOT 宏常量来执行重启。

请注意,如果 reboot 之前没有调用 sync,数据可能会丢失。

Linux 中使用 glibc:

#include <unistd.h>
#include <sys/reboot.h>

sync();
reboot(RB_AUTOBOOT);

关于c++ - 如何从 C++ 程序内部重新启动 Linux?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com