asctime.c

Olson, Arthur David (NIH/NCI) olsona at dc37a.nci.nih.gov
Thu Jul 22 14:30:47 UTC 2004


Code in "asctime" such as...

	{
		long	y;

		y = timeptr->tm_year + (long) TM_YEAR_BASE;
		if (y >= -999 && y <= 9999)
			(void) sprintf(buf, "%.3s %.3s%3d %02d:%02d:%02d
%ld\n",
				wn, mn,
				timeptr->tm_mday, timeptr->tm_hour,
				timeptr->tm_min, timeptr->tm_sec,
				y);
		else	(void) sprintf(buf, "%.3s %.3s%3d %ld\n",
				wn, mn, timeptr->tm_mday, y);
	}

...never returns NULL and never (when applied to a "struct tm" derived from
a 64-bit time_t) overflows a 26-character buffer passed to asctime.
It does lose time-of-day information in the distant past and distant future.

				--ado



More information about the tz mailing list