Ich möchte ein Embedded Linux herunterfahren, wenn eine Schließen-Schaltfläche auf der Benutzeroberfläche gedrückt wird. Ich weiß, dass ich es mit einem Aufruf von system
machen kann:
Ref: Link
Aber da ich weiß, dass die Verwendung von system
nicht ratsam ist, würde ich gerne wissen, ob es in C ++ einen anderen Weg gibt, dies zu tun (wenn es auch einen bestimmten Weg gibt, dies mit Qt zu tun, möchte ich auch kenne es obwohl eine allgemeine C ++ Methode wichtiger ist).
Unter Linux können Sie den Neustart-Systemaufruf zum Ausschalten, Anhalten oder Neustarten aufrufen. Das folgende Snippet zeigt, wie man eine Maschine ausschaltet, aber beachte, dass es natürlich nur unter Linux funktioniert:
%Vor%Natürlich benötigen Sie ausreichende Berechtigungen, um diesen syscall zu verwenden.
Unter glibc brauchst du:
%Vor%Auch hier musst du wie immer mit ausreichenden Privilegien rennen.
Wenn Ihr System über systemd verfügt, können Sie logind
Es ist auch möglich, eine Datei /etc/polkit-1/localauthority/50-local.d/10-enable-shutdown.pkla
hinzuzufügen, um die Anforderung der interaktiven Authentifizierung zu unterdrücken:
Wenn Ihr Problem darin besteht, dass system () nicht sicher ist, können Sie
verwenden %Vor%Dann können Sie sicher sein, dass Sie die richtige Shutdown-Funktion verwenden.