Returning error code doesn't work well for many asynchronous calls (aio_*) [0]. It also makes errno (possibly) inconsistent, but I didn't come up with that standard. I guess someone decided that making errno inconsistent is less of an issue than make the return code of libc inconsistent.
[0] http://www.gnu.org/software/libc/manual/html_node/Asynchronous-Reads_002fWrites.html#Asynchronous-Reads_002fWrites On Tue, Nov 18, 2014 at 8:47 AM, Dimitris Papastamos <s...@2f30.org> wrote: > On Tue, Nov 18, 2014 at 11:35:04AM -0500, M Farkas-Dyck wrote: >> On 18/11/2014, Dimitris Papastamos <s...@2f30.org> wrote: >> > On a side note here, for a failing syscall or similar, I think the >> > idea is to check for < 0 rather than == -1. I am not opposed to the >> > latter except that is already used less frequently in sbase. >> >> On an edge note, it would be much saner for many syscalls and libc >> functions to return minus the error code rather than return -1 and set >> errno, and in the future suckless-dominated world we could do so. The >> OpenBSD kernel already often does so internally. To check < 0 rather >> than == -1 would ease transition. > > Yes I've always wondered. >