>Did you try unsetting TZ and then calling tzset()? The man page
implies that doing so will force a reread of /etc/localtime
>"The tzset() function initializes time conversion information used by
the library routine localtime(3). The environment variable TZ specifies
how this is done.
>If TZ does not appear in the environment, the best available
approximation to local wall clock time, as specified by the
tzfile(5)-format file /etc/localtime is used."
>I haven't tested it, though, and I'm no timezone expert, so I may be
Yes, I've tried the tzset function. I'm basically doing the equivalent
of these steps after the Java app changes time zone and updates
time_t date = time(NULL);
printf("time zone is %s/%s", tzname, tzname);
struct tm* locTime = localtime(&date);
printf("%02d:%02d:%02d", locTime->tm_hour, locTime->tm_min,
The time printed is still based on the old time zone though. The tzname
variable that is set by tzset() still shows for example EDT even if I
have just changed the time zone to PDT. If I stop and restart the C app,
the time is correct, and tzname is then PDT instead of EDT.
I'm very puzzled on what I'm supposed to do to kick start the C time
zone. We do not want to have to restart our C apps for something as
trivial as this.
firstname.lastname@example.org mailing list
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"