Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Structure timespec (C11)

La fonction strftime La structure tm


Entête à inclure

#include <time.h>  // <ctime> en C++

Structure timespec (C11)

struct timespec {
    time_t tv_sec;      // nombre de secondes
    long tv_nsec;       // nombre de nanosecondes
};

Cette structure permet de définir un interval exprimé en secondes et en nano-secondes. Elle a été introduite en C ISO 2011.

Exemple de code

L'exemple de code proposé ci-dessous capture le temps présent dans une structure timespec puis l'affiche sur la console avec une précision à la nano-seconde.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
#include <stdio.h>
#include <stdlib.h>
#include <threads.h>

#define BUFFER_SIZE 50

int main() {

    // On capture le temps actuel.
    struct timespec now;
    timespec_get( &now, TIME_UTC );

    // On transforme la partie exprimée en seconde en une chaîne de caractères.
    char strNow[ BUFFER_SIZE ];
    strftime( strNow, BUFFER_SIZE, "%D %T", gmtime( &now.tv_sec ) );

    // On affiche le temps avec une précision à la nano-seconde
    printf( "Current time: %s.%09ld UTC\n", strNow, now.tv_nsec );

    return EXIT_SUCCESS;
}
Capture du temps actuel dans une structure timespec

Fonctions et types connexes

timespec_get (C11)
time_t
struct tm



La fonction strftime La structure tm