#include <time.h> // <ctime> en C++
time_t time( time_t * pTime );
Permet d'obtenir le temps écoulé depuis le premier janvier 1970 à 00:00:00, sous forme d'un entier positif : on parle souvent de « timestamp ».
En règle générale, le temps sera exprimé en secondes. Néanmoins, sur certains système, il se peut qu'il soit exprimé en une autre unité :
c'est pour cela qu'il est important d'utiliser les fonctions de conversions ou de manipulations de temps de la librairie <time.h>
.
Par exemple, utilisez systématiquement la fonction difftime
pour connaitre le nombre de
secondes écoulées entre deux temps (deux données de type time_t
).
En fait, il y a deux techniques pour obtenir ce temps : soit par valeur de retour, soit en passant un paramètre par pointeur pour qu'il
soit initialisé. Si vous souhaitez seulement récupérer le temps par valeur de retour, il vous faudra passer un pointeur NULL
étant donné que nous n'avons pas la notion de valeur de paramètre par défaut en C.
time_t
dans laquelle stocker le temps.
Si vous passez un pointeur valide, le temps qui sera stocké sera aussi renvoyé comme valeur de retour.
Si vous passez un pointeur nul, le temps sera alors uniquement retourné par valeur de retour.
Si tout se passe bien, la fonction renvoie le temps système (un timestamp de type time_t
) et ce qu'un paramètre valide
est été passé à la fonction ou non.
Si le paramètre passé ne pointe pas sur un emplacement de mémoire valide, la valeur -1
vous sera retournée par la fonction et la
variable globale errno
sera fixée à la valeur EFAULT
(bad address).
#include <stdio.h> #include <time.h> #include <unistd.h> int main( int argc, char * argv[] ) { time_t begin = time( NULL ); // Do something sleep( 2 ); // Is a POSIX function - defined in <unistd.h> time_t end = time( NULL); unsigned long secondes = (unsigned long) difftime( end, begin ); printf( "Finished in %ld sec\n", secondes ); return 0; }
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 :