Quelle est la différence entre clock_t, time_t et struct tm?
Quelle est la différence entre clock_t, time_t et struct tm?
struct tm ressemble à ceci:
struct tm{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
Mais comment ne clock_t et time_t?
source d'informationauteur Cristi
Vous devez vous connecter pour publier un commentaire.
time_t
est un temps absolu, représenté comme le nombre entier de secondes depuis l'époque UNIX (minuit GMT, le 1er janvier 1970). Il est utile sans équivoque, facile à travailler-avec la représentation d'un point dans le temps.clock_t
est une mesure relative de temps, représenté par un nombre entier nombre de tops d'horloge depuis quelques temps (peut-être le démarrage de l'ordinateur, mais pas de garanties, comme elle peut rouler assez souvent). Il y aCLOCKS_PER_SEC
tops d'horloge par seconde; la valeur de cette constante peut varier entre les différents systèmes d'exploitation, mais il est généralement autour de 100. Il est parfois utilisé pour le chronométrage, mais il n'est pas très bonne en raison de sa faible résolution.gettimeofday
'sstruct timeval
est beaucoup mieux pour le chronométrage.struct tm
est un calendrier la date et l'heure. Il peut ne pas représenter n'importe quel point dans le temps (e.g, vous pouvez avoir unstruct tm
qui dit que c'est février, 31, ou Dodecember 0st). Il n'y a pas de fuseau horaire, de sorte qu'il n'est pas absolue. Il est généralement utilisé lors de la conversion ou de lisible par l'homme, les représentations de la date et de l'heure.time_t
représente à l'heure actuelle-en général le nombre de secondes depuis quelques époque (p. ex., minuit, 1 Janvier, 1970). Il est destiné à représenter calendrier/horloge murale de temps, mais toujours être facile à manipuler comme un seul, un simple calcul arithmétique (par exemple,difftime
pouvez trouver la différence entre deux moments précis).clock_t
représente une quantité de temps CPU utilisé depuis un processus a été lancé. Il peut être convertie en secondes en divisant par CLOCKS_PER_SEC. Sa véritable intention est de représenter le temps CPU utilisé, pas de calendrier/horloge murale temps.struct tm
est une structure (avec des membres) qui représente un calendrier/horloge murale temps décomposé en composantes, année, mois, jour, heure, minute, seconde, etc. Il est destiné (surtout) comme une interface externe, tandis qu'untime_t
est principalement destiné à un usage interne -- c'est à dire, l'utilisation typique est que lorsque vous obtenez une date/heure dans le monde extérieur, vous mettez les composants dans unestruct tm
et la convertir en unetime_t
pour le stockage interne. Ensuite, lorsque vous avez besoin de faire quelque chose comme l'affichage d'une date/heure, vous convertir letime_t
à unstruct tm
. Les routines qui ne sont que la manipulation inclure une bonne quantité de l'intelligence de faire des choses comme la normalisation des dates, donc une date comme30 February
serait converti en2 March
(ou dans une année bissextile,1 March
).C juste dit que:
Dans le
glibc
le typetime_t
est un alias pourlong
.de http://www.gnu.org/software/libc/manual/html_node/Simple-Calendar-Time.html