Você pode usar a função system()
definida no cabeçalho stdlib.h
.
#include<stdlib.h>
int main()
{
system("dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 \"org.freedesktop.login1.Manager.PowerOff\" boolean:true");
retrun 0;
}
Isso é recomendado sobre sudo shutdown
porque o primeiro não requer privilégios de root. Ou seu programa solicitará a senha administrativa antes do desligamento.
Você pode obter mais informações sobre o comando do sistema em sua página de manual:
man system