gmtime, gmtime_r, gmtime_s
From cppreference.net
|
Défini dans l'en-tête
<time.h>
|
||
| (1) | ||
| (2) | (depuis C23) | |
| (3) | (depuis C11) | |
1)
Convertit le temps donné depuis l'époque (une valeur
time_t
pointée par
timer
) en temps calendaire, exprimé en temps universel coordonné (UTC) dans le format
struct tm
. Le résultat est stocké dans un stockage statique et un pointeur vers ce stockage statique est renvoyé.
2)
Identique à
(1)
, sauf que la fonction utilise le stockage fourni par l'utilisateur
buf
pour le résultat.
3)
Identique à
(1)
, sauf que la fonction utilise le stockage fourni par l'utilisateur
buf
pour le résultat et que les erreurs suivantes sont détectées à l'exécution et appellent la fonction
gestionnaire de contraintes
actuellement installée :
-
- timer ou buf est un pointeur nul
-
Comme pour toutes les fonctions à vérification de limites,
gmtime_sn'est garantie d'être disponible que si __STDC_LIB_EXT1__ est défini par l'implémentation et si l'utilisateur définit __STDC_WANT_LIB_EXT1__ à la constante entière 1 avant d'inclure <time.h> .
Table des matières |
Paramètres
| timer | - | pointeur vers un objet time_t à convertir |
| buf | - | pointeur vers un objet struct tm pour stocker le résultat |
Valeur de retour
1)
pointeur vers un objet
tm
interne statique en cas de succès, ou pointeur nul sinon. La structure peut être partagée entre
gmtime
,
localtime
, et
ctime
et peut être écrasée à chaque invocation.
2,3)
copie du pointeur
buf
, ou pointeur nul en cas d'erreur (qui peut être une violation de contrainte d'exécution ou un échec de conversion de l'heure spécifiée en UTC).
Notes
gmtime
peut ne pas être thread-safe.
POSIX exige que
gmtime
et
gmtime_r
définissent
errno
à
EOVERFLOW
en cas d'échec dû à un argument trop volumineux.
L'implémentation de
gmtime_s
dans
Microsoft CRT
est incompatible avec la norme C car elle a inversé l'ordre des paramètres.
Exemple
Exécuter ce code
#define __STDC_WANT_LIB_EXT1__ 1 #define _XOPEN_SOURCE // for putenv #include <stdio.h> #include <stdlib.h> // for putenv #include <time.h> int main(void) { time_t t = time(NULL); printf("UTC: %s", asctime(gmtime(&t))); printf("local: %s", asctime(localtime(&t))); // POSIX-specific putenv("TZ=Asia/Singapore"); printf("Singapore: %s", asctime(localtime(&t))); #ifdef __STDC_LIB_EXT1__ struct tm buf; char str[26]; asctime_s(str, sizeof str, gmtime_s(&t, &buf)); printf("UTC: %s", str); asctime_s(str, sizeof str, localtime_s(&t, &buf)); printf("local: %s", str); #endif }
Sortie possible :
UTC: Fri Sep 15 14:22:05 2017 local: Fri Sep 15 14:22:05 2017 Singapore: Fri Sep 15 22:22:05 2017 UTC: Fri Sep 15 14:22:05 2017 local: Fri Sep 15 14:22:05 2017
Références
- Norme C23 (ISO/IEC 9899:2024):
-
- 7.27.3.3 La fonction gmtime (p: TBD)
-
- K.3.8.2.3 La fonction gmtime_s (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.27.3.3 La fonction gmtime (p: 288)
-
- K.3.8.2.3 La fonction gmtime_s (p: 454-455)
- Norme C11 (ISO/IEC 9899:2011):
-
- 7.27.3.3 La fonction gmtime (p: 393-394)
-
- K.3.8.2.3 La fonction gmtime_s (p: 626-627)
- Norme C99 (ISO/IEC 9899:1999) :
-
- 7.23.3.3 La fonction gmtime (p: 343)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.12.3.3 La fonction gmtime
Voir aussi
|
(C23)
(C11)
|
convertit le temps depuis l'époque en temps calendaire exprimé en heure locale
(fonction) |
|
Documentation C++
pour
gmtime
|
|