Journal : struct tm et date

Posté par saorge () le 17 avril 2004
0
Bonjour,

Dans un petit programme, j'utilise une fonction qui intialise une structure "tm". En effet, en fonction de la date du jour, le programme doit avoir un comportement différent. Cette structure sert de paramètre à une autre fonction, qui elle crée un fichier (du genre
tmp_20040417 pour aujourd'hui).
Donc, dans le cas simple, le programme ne doit faire qu'une action simple (télécharger un seul fichier). Par contre, dans le cas compliqué, il est nécessaire de télécharger 6 fichiers.
Je pensais donc initialier une seule fois une structure tm, et réutiliser toujours la même. Malheureusement, cela ne marche pas ! Maintenant, j'ai placé ma fonction dans la boucle de traitement, cela fonctionne correctement. Je suppose donc que mon programme devait modifier le contenu de la structure, pourtant, ce n'est pas le cas !
Je me demande donc d'où vient le problème. Avez-vous déjà rencontré un
tel comportement avec tm ?

Un grand merci d'avance

> Lire le journal (2 commentaires, moyenne: 1,5).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Re: struct tm et date

Posté par Troy McClure (page perso, ) le 17/04/2004 à 11:59. (lien). Évalué à 2.

si tu ne recuperais que le pointeur renvoyé par localtime ou gmtime, c'est un pointeur sur une variable statique quelque part dans la glibc, donc si il y a d'autres appels à ces fonctions dans ton code ou dans une lib, le contenu du bouzin sera modifié, il faut que tu recopies tout dans une struct tm locale à ton programme (par ex. en utilisant localtime_r ou gmtime_r)

  • [^]Re: struct tm et date

    Posté par saorge () le 18/04/2004 à 15:12. (lien). Évalué à 1.

    Un grand merci. OK, je vais modifier mon code en conséquence de ce comportement.
    Encore merci...

Revenir en haut de page