2016-11-15 1 views
1

OS: UbuntuEssayer de changer l'horloge temps réel dans Ubuntu 14.04 en application C++, obtenir "Opération non autorisée"

Version: 14,04

Langue: 11 C++

J'ai écrit une application qui a besoin de changer l'horloge en temps réel en fonction de différentes sources. En tant qu'arrière-plan, la raison pour laquelle je n'utilise pas NTP pour gérer ceci est basée sur différentes sources d'horloge qui sont nécessaires à différents points, pour toutes les applications actuelles utilisant CLOCK_REALTIME. Cette application reçoit une heure de référence d'horloge et règle l'horloge en utilisant clock_settime. Ceci renvoie le message Operation not permitted.

if(clock_settime(CLOCK_REALTIME, &timeRT) != 0) { std::cerr << " Set clock_settime(CLOCK_REALTIME, &timeRT) = " << strerror(errno) << std::endl; }

je suppose que les privilèges d'applications ne sont pas correctement définies.

  • Des instructions sur la façon de procéder?
  • Autre chose que je devrais vérifier?

Répondre

1

Exécutez votre application en tant que root, et avant d'essayer de régler l'horloge, appelez:

procmgr_ability(0, PROCMGR_AID_CLOCKSET); 

Vous devrez inclure:

#include <sys/procmgr.h>