asctime.c
Ken Pizzini
tz. at explicate.org
Tue Jul 27 09:03:29 UTC 2004
On Tue, Jul 27, 2004 at 12:37:12AM -0700, Paul Eggert wrote:
> > snprintf's behavior is to return the number of characters that would have
> > been generated had the output buffer not been limited.
>
> Good catch. Sorry, I misused snprintf. (Wouldn't be the first time. :-)
Ah; I didn't read the previous code carefully enough when I claimed
that Eggert did it right last time. :-P
[...]
> * If snprintf returns a negative value (this shouldn't happen --
> perhaps if memory exhausted though?), asctime should probably leave
> errno set to whatever snprintf set it to, rather than setting it to
> EOVERFLOW.
There is a portability issue where some older snprintf() implementations
(e.g., glibc-2.0.6) returned -1 for the "buffer too small" conditon,
instead of the C99 specified behavior that Olson is mentioning. I'm not
sure that errno is given a useful value in this situation (I don't have
old glibc documentation handy, and it may vary with other implementations
anyway), so it might still make sense to force errno=EOVERFLOW.
--Ken Pizzini
More information about the tz
mailing list