Comment redémarrer Linux à partir d'un programme C ++?

J'ai un Qt 4 GUI où je dois avoir une option dans un menu déroulant qui permet à l'utilisateur de choisir de redémarrer l'ordinateur. Je me rends compte, cela peut sembler redunant avec la possibilité de redémarrer l'ordinateur par d'autres moyens, mais le choix doit y rester. J'ai essayé d'utiliser system() pour appeler le suivant:

  1. suid-root shell script
  2. un non-suid script shell
  3. suid-root binaire programme

et tous juste cause

redémarrage: doit être super-utilisateur

à être imprimé. À l'aide de system() pour appeler redémarrer directement fait la même chose. Je ne suis pas particulièrement attaché à l'aide de system() pour ce faire, mais il semblait être le choix le plus direct.

Comment puis-je redémarrer le système à partir de l'interface graphique?

source d'informationauteur Dave K