Comment by aaronmdjones
3 hours ago
`errno` is a userland concept; the kernel returns negative error numbers that libc then turns into -1 and sets errno. Thus the correct manpage is errno(3).
3 hours ago
`errno` is a userland concept; the kernel returns negative error numbers that libc then turns into -1 and sets errno. Thus the correct manpage is errno(3).
Why does libc do this instead of simply returning that same negative number?
POSIX, basically. It was already a convention by the time linux/glibc implemented it.
OpenBSD up to 5.9 had errno(2) symlinked to intro(2), describing error codes:
https://man.freebsd.org/cgi/man.cgi?query=errno&apropos=0&se...
Also, your statements about the kernel and libc are OS specific.