Ambos códigos funcionan perfectamente. Son casi instantáneos el reseteo y el apagado.
Uso:
sudo ./Nombredelprograma
Si no quieren ejecutarlo como root deben escribir:
sudo chmod 6775 Nombredelprograma
Luego:
./Nombredelprograma
REINICIAR PC:

#include <unistd.h>
#include <sys/reboot.h>
int main() {
sync(); // Usar si no se guardaron datos, sesión, etc. *
reboot(RB_AUTOBOOT);
return(0);
}
APAGAR LA PC:

#include <unistd.h>
#include <sys/reboot.h>
int main() {
sync();
reboot(RB_POWER_OFF);
return(0);
}
Ayuda:
stackoverflow.com
* [Enlace externo eliminado para invitados]