[tz] [PROPOSED 2/2] strftime: conform better to POSIX+

Clive D.W. Feather clive at davros.org
Sat Aug 8 21:25:47 UTC 2020


Robert Elz said:
>   | a reliable way
>   | to determine whether 0 represents failure or buffer exhaustion
> 
> This is not necessary.
> 
> The cases can be distinguished by setting errno to 0 before the call,
> and checking afterwards (if 0 is returned) - if errno is set there was
> an error, if it is still 0, it is something else.

C has no requirement to leave errno unchanged on success.


| The value of errno is zero at program startup, but is
| never set to zero by any library function. The value of
| errno may be set to nonzero by a library function call
| whether or not there is an error, provided the use of errno
| is not documented in the description of the function in this
| International Standard.

strftime is not documented as using errno, so that wording applies.

This is because the library function may have to make a system call to
check how to behave and that may fail.

-- 
Clive D.W. Feather          | If you lie to the compiler,
Email: clive at davros.org     | it will get its revenge.
Web: http://www.davros.org  |   - Henry Spencer
Mobile: +44 7973 377646


More information about the tz mailing list