This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
can I ask question about a bug of gettimeofday here?
- From: Lin George <george4academic at yahoo dot com>
- To: gcc-help at gcc dot gnu dot org
- Date: Fri, 9 Feb 2007 04:01:31 -0800 (PST)
- Subject: can I ask question about a bug of gettimeofday here?
Hello everyone,
I am not sure whether it is the correct place to ask a bug of gettimeofday here.
Hello everyone,
I found sometimes the time will not be increased, but will be decreased. It does not happen each time, but happens rarely.
Here is my program and output, are there anything wrong.
Output
--------------------
begin second and micro-second is: 1155819609 -- 653911
print begin time
2006-08-17 13:00:09.653
end second and micro-second is: 1155819609 -- 635116
print end time
2006-08-17 13:00:09.635
--------------------
Source code
--------------------
Code:
struct timeval begin, end
gettimeofday(&begin,NULL);
// operations
gettimeofday(&end,NULL);
timeDiff (&begin, &end);
void print_time (timeval tv)
{
struct tm* ptm;
char time_string[40];
long milliseconds;
/* Obtain the time of day, and convert it to a tm struct. */
ptm = localtime (&tv.tv_sec);
/* Format the date and time, down to a single second. */
strftime (time_string, sizeof (time_string), "%Y-%m-%d %H:%M:%S", ptm);
/* Compute milliseconds from microseconds. */
milliseconds = tv.tv_usec / 1000;
/* Print the formatted time, in seconds, followed by a decimal point
and the milliseconds. */
printf ("%s.%03ld\n", time_string, milliseconds);
}
long timeDiff(struct timeval* begin,struct timeval* end)
{
long milliSeconds=0;
milliSeconds = (long)(1000L*(end->tv_sec - begin->tv_sec) + (end->tv_usec - begin->tv_usec)/1000L);
if(milliSeconds <= 0)
{
printf ("begin second and micro-second is: %ld -- %ld \n", begin->tv_sec, begin->tv_usec);
printf ("print begin time \n");
print_time (*begin);
printf ("end second and micro-second is: %ld -- %ld \n", end->tv_sec, end->tv_usec);
printf ("print end time \n");
print_time (*end);
}
return milliSeconds;
}
--------------------
thanks in advance,
George
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com