J'ai besoin de convertir ST_MTime au format String pour le transmettre à la couche Java, j'essaie d'utiliser cet exemple http://www.cplusplus.com/forum/unices/10342/ mais le compilateur produit des erreurs p>
Conversion invalide de "long non signé int * 'à" const temps_t * {aka long int const *} ' p>
Initialisation de l'argument 1 de 'TM * localtime (const temps_t *)' [-Fermissive] p> blockQuote>
Qu'est-ce que je fais mal, comment obtenir la création du temps de fichier à l'aide de la fonction Stat dans la présentation de chaîne. P>
aide s'il vous plaît. p>
3 Réponses :
Utiliser imprimerait la sortie: p> StrfTime () Code> Il existe un exemple dans le page man a> quelque chose comme:
Où avez-vous obtenu t code>?
Selon le Stat (2) < / a> page man, le champ Vous avez besoin localTime (3) pour convertir ce afin que vous puissiez coder quelque chose comme: p> puis utilisez nb. J'utilise st_mtime code> est un
time_t code> (c'est-à-dire après avoir lu la TIME (7) MANGE, un nombre de secondes depuis le UNIX EPOCH ).
time_t code> à un
struct tm code> dans l'heure locale, puis Strftime (3) pour le convertir à un
char * code> chaîne. p>
timbruf Code> Peut-être par
STRUP code> -ing-ger. p>
localTime_r code> car il est plus convivial. P> p>
Si vous n'êtes pas inquiet du format, vous pouvez également simplement passer la TIME_T dans "CTTIME" pour obtenir une chaîne. (Remarque CURTIC N'EST PAS THILLE-SAFE.)
Mais l'OP a besoin d'une solution de fil-sécurité, car elle est à l'intérieur d'une JVM.
Vous pouvez y parvenir de manière alternative:
Déclarez un pointeur à un Déclarez une matrice de caractère de taille appropriée, qui peut contenir la chaîne de temps souhaitée: p>
break the TM code> Structure: p>
st.st_mtime code> (où
st code> est un
struct code> de type
stat code>, c'est-à-dire
STR STAT STAT ST code>) dans une heure locale à l'aide de la fonction
localTime () code>: p>
memset(file_modified_time, '\0', strlen(file_modified_time));