This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Timing Functions on Cygwin



I have trouble with timing functions(time(), localtime(),
tzset(), mktime()) on Cygwin using gcc compiler.

I wrote a simple program attached.

It basicly converts the value from time()(call it A) to tm structure, then
converts this tm back to a value in seconds using tzset() and
mktime()(call it B).  A and B are supposed to be equal.  Cygwin gives me a
6 hours difference(I am in Central Time Zone), while other systems(I tried
IRIX, Linux, Sun OS) work well.  

Hope you can give me a hint!


Raymond
NCSA
/* test timing:
 *    get local time from time() and localtime(),
 *    convert to time in seconds by mktime(),
 *    supposed to get same values.  
 */
#include <stdio.h>
#include <time.h>
#include <sys/time.h>

main()
{
  struct tm *tm;
  time_t now, the_time;

  /*get current time in seconds.*/
  now = time(0);
  /* convert to tm structure */
  tm = localtime(&now);  

  /*adjust to local time zone and daylight saving time */
  tzset();
  /*convert tm structure to time in seconds.  Cygwin returns Greenwich time 
    here while other systems return local time. */
  the_time = mktime(tm);

  fprintf(stderr, "tm->tm_isdst=%d\n", tm->tm_isdst); 
  fprintf(stderr, "now=%d,\nthe_time=%d,\nnow - the_time=%d\n", now, the_time,
          (now-the_time));

  return 0;
}
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]