[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: strerror(0) POSIX compliance
In article <20160324125858.516aa36bc70bddd1b180e8be%schemamania.org@localhost>,
James K. Lowden <tech-userlevel%netbsd.org@localhost> wrote:
>On Thu, 24 Mar 2016 14:29:39 +0000 (UTC)
>mlelstv%serpens.de@localhost (Michael van Elst) wrote:
>> >(I agree that calling strerror(0) is odd and a likely sign of a bug,
>> >but that's separate from complying with standards when compliance
>> >isn't harmful.)
>> Well, if calling strerror(0) is a bug, then usually because it's
>> called after an error condition that didn't set errno.
>Has that happened to you? I feel sure that's never happened to me, but
>maybe I'm less adventurous.
>IMO it's incorrect to say 0 is an "undefined error". It's defined as
>success by nearly every syscall. The emitted string should reflect
>that, even if [sic] Posix says so. Perhaps,
Actually not; syscalls set errno on error, don't clear errno on success .
Thus it is incorrect code to test errno if the syscall succeeded. It shows
errno = 3;
 There is at least one syscall stub that clears errno before the syscall
which I find bogus; can you guess which one?
Main Index |
Thread Index |