Bonjour,
Je viens d'implémenter dans mon programme la même fonctionnalité que la commande ls -l, cependant j'ai un overflow que je n'arrive pas à contourné.
Afin de gérer la date, j'utilise la fonction ctime(), mais lorsque le timestamp de création de fichier est trop grand => overflow sur certaine machine ! ( Testé sous deux Mac différent : l'un fonctionne, l'autre overflow ).
Un exemple :
touch -t 99991231251 file
./a.out -l file
=>overflow puis ..segfault
Partie du code qui plante :
1 2 3 4 5 6
|
char *str;
time_t current;
str = ctime(&buf_time); //line qui overflow
current = time(NULL); |
ctime() renvoit null et remplit la variable globale errno.. Je n'ai plus le message extact sous la main, mais il disait comme quoi la capacité n'est pas suffisante pour le contenu de buf_time. Avez-vous une idée de comment contourner cette limite ?
Merci à vous.
Partager