Man page - getdate(3)

Packages contains this manual

Available languages:

en fr pl ja ru de

Manual

getdate

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
ENVIRONNEMENT
ATTRIBUTS
VERSIONS
STANDARDS
HISTORIQUE
EXEMPLES
Source du programme
VOIR AUSSI
TRADUCTION

NOM

getdate, getdate_r - Conversion d’un temps sous forme de chaüne de caractùres au format humain

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <time.h>

struct tm *getdate(const char * string );

extern int getdate_err;

int getdate_r(const char *restrict string , struct tm *restrict res );

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

getdate () :
_XOPEN_SOURCE >= 500

getdate_r () :
_GNU_SOURCE

DESCRIPTION

La fonction getdate () convertit une date et un temps sous forme de chaĂźne de caractĂšres, contenue dans le tampon string , au format humain. Le temps au format humain est sauvegardĂ© dans une structure tm et un pointeur vers cette structure est renvoyĂ©. Cette structure est allouĂ©e statiquement, elle sera donc Ă©crasĂ©e lors d’un prochain appel.

Contrairement Ă  strptime (3), (qui a un argument format ), getdate () utilise les formats prĂ©sents dans le fichier dont le chemin d’accĂšs complet est donnĂ© par la variable d’environnement DATEMSK . La premiĂšre ligne du fichier qui peut ĂȘtre mise en correspondance avec la chaĂźne passĂ©e en paramĂštre est utilisĂ©e pour la conversion.

La correspondance n’est pas sensible Ă  la casse. Les espaces superflus, qu’ils soient dans le motif ou dans la chaĂźne Ă  convertir, sont ignorĂ©s.

Les paramĂštres de conversion qu’un motif peut contenir sont les mĂȘmes que pour strptime (3). Un indicateur de conversion supplĂ©mentaire est spĂ©cifiĂ© dans POSIX.1-2001 :

%Z

Nom du fuseaux horaire (non implémenté dans le glibc).

Lorsque %Z est spĂ©cifiĂ©, la structure contenant le temps au format humain est initialisĂ©e avec le temps actuel du fuseaux horaire. Sinon, elle est initialisĂ©e sous forme humaine Ă  l’heure locale (comme lors d’un appel Ă  localtime (3)).

Lorsque seul le jour de la semaine est donnĂ©, le jour pris en compte sera le premier jour correspondant Ă  partir d’aujourd’hui inclus.

Lorsque seul le mois est spĂ©cifiĂ© (et pas l’annĂ©e), le mois pris en compte est le premier mois correspondant Ă  partir du mois courant inclus. Si aucun jour n’est indiquĂ©, le premier jour du mois est pris par dĂ©faut.

Lorsque les heures, minutes et secondes ne sont pas indiquĂ©es, l’heure courante (heures, minutes et secondes) est prise par dĂ©faut.

Si aucune date n’est indiquĂ©e, mais que l’on connaĂźt l’heure, l’heure prise en compte sera la premiĂšre occurrence de cette heure, Ă  partir de l’heure courante incluse.

getdate_r est une extension GNU qui fournit une version rĂ©entrante de getdate . Au lieu d’utiliser une variable globale pour rapporter les erreurs et un tampon statique pour renvoyer le temps au format humain, elle renvoie les erreurs avec la valeur de retour de la fonction et le temps au format humain dans le tampon allouĂ© par l’appelant pointĂ© par res .

VALEUR RENVOYÉE

En cas de succĂšs, getdate () renvoie un pointeur vers une structure struct tm . Sinon elle renvoie NULL et positionne la variable globale getdate_err avec l’un des codes d’erreur ci-dessous. La modification Ă©ventuelle de errno est indĂ©finie.

En cas de succùs, getdate_r () renvoie 0. En cas d’erreur, elle renvoie l’un des codes d’erreur ci-dessous.

ERREURS

Les erreurs suivantes sont renvoyées par getdate_err (pour getdate ()) ou par le code de retour de la fonction (pour getdate_r ()).

1

La variable d’environnement DATEMSK est non dĂ©finie ou sa valeur est une chaĂźne vide.

2

Le fichier de modĂšle spĂ©cifiĂ© par DATEMSK ne peut ĂȘtre ouvert en lecture.

3

Impossible de lire l’état du fichier.

4

Le fichier de modĂšle n’est pas un fichier rĂ©gulier.

5

Une erreur est survenue au cours de la lecture du fichier de modĂšle.

6

Échec d’allocation mĂ©moire (pas assez de mĂ©moire disponible).

7

Il n’y a pas de ligne dans le fichier qui puisse ĂȘtre mise en correspondance avec l’entrĂ©e.

8

ParamĂštres d’entrĂ©e invalides.

ENVIRONNEMENT

DATEMSK

Fichier contenant les motifs de formatage.

TZ

LC_TIME

Variables utilisées par strptime (3).

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3883645-1.png

VERSIONS

La spĂ©cification POSIX.1 pour strptime (3) contient des spĂ©cifications de conversion utilisant les modificateurs %E ou %O alors que de tels modificateurs ne sont pas indiquĂ©s pour getdate (). Dans la glibc, getdate () est implĂ©mentĂ©e avec strptime (3), si bien que les deux fonctions supportent exactement les mĂȘmes conversions.

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001.

EXEMPLES

Le programme ci-dessous appelle getdate () pour chaque argument de la ligne de commande et affiche la valeur des champs de la structure tm renvoyĂ©e. La session shell suivante montre des exemples d’utilisation de ce programme :

$ TFILE=$PWD/tfile
$ echo '%A' > $TFILE # Full name of the day of the week
$ echo '%T' >> $TFILE # Time (HH:MM:SS)
$ echo '%F' >> $TFILE # ISO date (YYYY-MM-DD)
$ date
$ export DATEMSK=$TFILE
$ ./a.out Tuesday '2009-12-28' '12:22:33'
Sun Sep 7 06:03:36 CEST 2008
Call 1 ("Tuesday") succeeded:
tm_sec = 36
tm_min = 3
tm_hour = 6
tm_mday = 9
tm_mon = 8
tm_year = 108
tm_wday = 2
tm_yday = 252
tm_isdst = 1
Call 2 ("2009-12-28") succeeded:
tm_sec = 36
tm_min = 3
tm_hour = 6
tm_mday = 28
tm_mon = 11
tm_year = 109
tm_wday = 1
tm_yday = 361
tm_isdst = 0
Call 3 ("12:22:33") succeeded:
tm_sec = 33
tm_min = 22
tm_hour = 12
tm_mday = 7
tm_mon = 8
tm_year = 108
tm_wday = 0
tm_yday = 250
tm_isdst = 1

Source du programme

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int
main(int argc, char *argv[])
{
struct tm *tmp;
for (size_t j = 1; j < argc; j++) {
tmp = getdate(argv[j]);
if (tmp == NULL) {
printf("Échec de l’appel %zu ; getdate_err = %d\n",
j, getdate_err);
continue;
}
printf("Appel %zu (\"%s\") réussi :\n", j, argv[j]);
printf(" tm_sec = %d\n", tmp->tm_sec);
printf(" tm_min = %d\n", tmp->tm_min);
printf(" tm_hour = %d\n", tmp->tm_hour);
printf(" tm_mday = %d\n", tmp->tm_mday);
printf(" tm_mon = %d\n", tmp->tm_mon);
printf(" tm_year = %d\n", tmp->tm_year);
printf(" tm_wday = %d\n", tmp->tm_wday);
printf(" tm_yday = %d\n", tmp->tm_yday);
printf(" tm_isdst = %d\n", tmp->tm_isdst);
}
exit(EXIT_SUCCESS);
}

VOIR AUSSI

time (2), localtime (3), setlocale (3), strftime (3), strptime (3)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .