Dag-Erling Smrgrav said:
"Clive D.W. Feather via tz" <tz@iana.org> writes:
Dag-Erling Smørgrav <des@des.no> writes:
[...] POSIX never guarantees that a successful call does not modify errno [...] Library functions and system calls never set errno to 0. So the usual answer is to set errno to 0 before the call and see if it's still 0 afterwards.
See above, and try this:
struct tm tm = { .tm_mday = 1, .tm_year = 69 }; errno = 0; printf("%ld %d\n", mktime(&tm), errno);
There is no requirement in the C99 Standard (I dropped out of WG14 shortly after) that the call to mktime is made before the value of errno is read. -- Clive D.W. Feather | If you lie to the compiler, Email: clive@davros.org | it will get its revenge. Web: http://www.davros.org | - Henry Spencer Mobile: +44 7973 377646