Forum Programmation.c++ seconde intercalaire (leap seconds)

Posté par . Licence CC by-sa.
2
7
août
2018

Bonjour,
J'obtiens depuis des périphériques synchronisés PtP (precision time protocol) des données timestampées TAI. Pour les convertir en UTC je retire les 37 secondes de décalage.
Cela m'ennuie de gérer ça par une variable, j'aimerais obtenir ce décalage par une API sous linux. Mais je ne trouve pas.
En dernier recours, je peux parser la diffusion PtP mais cela fait plus de travail.
Quelqu'un sait-il où je peux trouver cette valeur mise à jour dans le système ?

Merci

  • # NTP, mais ça répond pas à la requête...

    Posté par . Évalué à 1.

    Bonsoir,

    Pour la conversion n'oublie pas de supporter le 30/06 et le 31/12 à 23:59:60.

    Normalement, ntp_gettimex() correspond a ta demande mais chez moi la valeur retournée est de zéro, c'est sûrement que le serveur NTP sur lequel je suis synchronisé ne renvoie pas la variable.

    Tu peux aussi télécharger deux fois par an l'une des liste d'offsets, par exemple:
    https://www.ietf.org/timezones/data/leap-seconds.list

    • [^] # Re: NTP, mais ça répond pas à la requête...

      Posté par . Évalué à 1.

      Merci, je teste ntp_gettimex() asap.
      Le système n'est pas connecté au web, donc les données ietf à télécharger, j'oublie.

      Merci encore.

    • [^] # Re: NTP, mais ça répond pas à la requête...

      Posté par . Évalué à 1.

      Bon, sans leap file TAI == 0

      6.14.1. NTP Versions 4.2.6 and newer
      Copy the leap seconds file onto your system running ntpd and add a line to your ntp.conf:
      leapfile "/path/to your/leap-file"
      You need to restart ntpd to apply your configuration changes.

      Du coup, si ma machine n'a pas accès au web, pas de mise à jour automatique. Il me reste plus qu'à parser les annonces Ptp qui elles contiennent cette valeur que le serveur PtP obtient par la diffusion GPS.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.