timeval est une structure que Code::Blocks reconnaît et qui est dans sys/time.h mais le compilateur ne l’a pas reconnue.
Voilà le log de la compilation:
C:\Documents and Settings\Matthias BERNIER\Mes documents\Projet C\Projet\Skipper\Suppl_Functions.c||In function Recuperation_Date_Heure':| C:\Documents and Settings\Matthias BERNIER\Mes documents\Projet C\Projet\Skipper\Suppl_Functions.c|38|error:
timeval’ undeclared (first use in this function)|
C:\Documents and Settings\Matthias BERNIER\Mes documents\Projet C\Projet\Skipper\Suppl_Functions.c|38|error: (Each undeclared identifier is reported only once|
C:\Documents and Settings\Matthias BERNIER\Mes documents\Projet C\Projet\Skipper\Suppl_Functions.c|38|error: for each function it appears in.)|
C:\Documents and Settings\Matthias BERNIER\Mes documents\Projet C\Projet\Skipper\Suppl_Functions.c|38|error: syntax error before “Time”|
C:\Documents and Settings\Matthias BERNIER\Mes documents\Projet C\Projet\Skipper\Suppl_Functions.c|39|error: `Time’ undeclared (first use in this function)|
||=== Build finished: 5 errors, 0 warnings ===|
Un petit coup de google donne ceci :
http://www.cpp-programming.net/c-tidbits/gettimeofday-function-for-windows/
exemple ‘date_heure.c’:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int
main ( int argc, char *argv[] )
{
time_t my_time;
if (time (&my_time) == -1)
{
perror("time()");
return EXIT_FAILURE;
}
printf("%s\n", asctime( localtime( &my_time)));
return EXIT_SUCCESS;
}
la compile et l’exe:
$make date_heure
gcc -lrt date_heure.o -o date_heure
$ ./date_heure
Thu Dec 24 15:38:10 2009
il faut lier le code par la librt en faisant: -lrt quelque part dans codeblock.
En espérant que cela puisse t’aider… :smt111
Merci.
Je vais la tester dans le programme dès que j’aurais programmé la fonction qui nécessitera son utilisation.
Par contre, j’ai deux questions:
- Dans quel type de variable pourrais-je stocker la date renvoyée par ta fonction?
- Existe t-il une fonction retournant uniquement l’heure système?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int
main ( int argc, char *argv[] )
{
time_t my_time;
struct tm *mon_temps;
if (time (&my_time) == -1)
{
perror("time()");
return EXIT_FAILURE;
}
mon_temps = localtime(&my_time);
printf("Mes secondes:%d\n", mon_temps->tm_sec);
printf("Mes minutes:%d\n", mon_temps->tm_min);
printf("Mes heures:%d\n", mon_temps->tm_hour);
printf("%s\n", asctime( mon_temps));
return EXIT_SUCCESS;
}
résultat:
$ ./date_heure
Mes secondes:25
Mes minutes:20
Mes heures:18
Tue Dec 29 18:20:25 2009
puisque tu as l’air largué, je fais même pour toi le man:
man localtime:
CTIME(3) Manuel du programmeur Linux CTIME(3)
NOM
asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r,
gmtime_r, localtime_r - Convertir des dates et des temps au format
année/mois/jours ou au format ASCII
SYNOPSIS
#include <time.h>
char *asctime(const struct tm *tm);
char *asctime_r(const struct tm *tm, char *buf);
char *ctime(const time_t *timep);
char *ctime_r(const time_t *timep, char *buf);
struct tm *gmtime(const time_t *timep);
struct tm *gmtime_r(const time_t *timep, struct tm *result);
struct tm *localtime(const time_t *timep);
struct tm *localtime_r(const time_t *timep, struct tm *result);
time_t mktime(struct tm *tm);
...
La représentation humaine (« broken-down time ») est stockée dans une
structure tm, définie dans <time.h> comme suit :
struct tm {
int tm_sec; /* secondes */
int tm_min; /* minutes */
int tm_hour; /* heures */
int tm_mday; /* jour du mois */
int tm_mon; /* mois */
int tm_year; /* année */
int tm_wday; /* jour de la semaine */
int tm_yday; /* jour de l’année */
int tm_isdst; /* décalage horaire */
};
...
VOIR AUSSI
date(1), gettimeofday(2), time(2), utime(2), clock(3), difftime(3),
strftime(3), strptime(3), timegm(3), tzset(3), time(7)
...
:smt111
Merci.