-
strptime pour windows !
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans, je ne la trouve pas !
Auriez vous une idée de ce que je pourrais utiliser pour convertir un string en systime ?
Merci beaucoup pour l'aide !
Amicalement,
Alex
-
-
A ma connaissance strptime est une fonction de la LibC GNU (cad Linux).
Quand tu programmes sous Windows (avec mingw ou cygwin) tu as accès à la fois à :
- un équivalent de la LibC GNU (bien qu'il manques parfois certaines fonctions comme strptime dans ton cas)
- l'API complète Win32 (LibC de Windows) qui contient strftime
Voilà pourquoi tu ne trouvais pas ta fonction dans les pages de man (qui ne concernent que la LibC GNU). La prochaine fois regarde aussi l'aide "*.hlp" de l'API Win32.
-
strptime() n'est pas une fonction GNU, c'est une fonction POSIX/XSI.
http://www.opengroup.org/onlinepubs/.../strptime.html
Sous Windows avec MinGW, on a droit à :
- La C Run-Time Library (CRT) de Microsoft, version 6 (MSVCRT.DLL), qui contient :
- La plupart des fonctions C standard C90,
- pas mal de fonctions POSIX,
- de nombreuses extensions Microsoft.
Et avec elle, la C++ Run-Time Library qui elle, contient certaines implémentations de fonctions de la STL. - Des extensions accordées par MinGW (notamment, les fonctions de <dirent.h>)
- L'API Win32.
strftime() est une réponse à coté de la plaque, puisqu'elle fait le contraire de strptime() : F est pour Format, P est pour Parse.
-
En fait, la fonction strptime() n'est pas disponible sous Windows, c'est confirmé.
Il est possible que tu puisse t'en sortir à coups de sscanf(), mais tu auras quand même pas mal de travail...
-
Autant pour moi pour strptime() vs. strftime() :oops:
Je pensais que c'était une fonction (une de plus) spécifique à Unix et non implémentée sous Windows.
-
C'est bien ce que c'est : Une fonction POSIX ne connaissant pas d'équivalent sous Windows...
-
pourquoi ne pas utiliser time_t et struct tm?
-
Parce que strptime permet de convertir une chaine en time_t/tm. C'est utilisé avant d'avoir les types time_t/tm.