https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90370
Florian Weimer <fw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fw at gcc dot gnu.org --- Comment #2 from Florian Weimer <fw at gcc dot gnu.org> --- POSIX does not say anything about value zero, except that none of its functions sets errno to zero. This can be used to detect errors for interfaces where in-band signaling using the return value does not work. ptrace with PTRACE_PEEKUSER is a very simple example (but it's not in POSIX). glibc sets errno to zero in certain functions: https://sourceware.org/bugzilla/show_bug.cgi?id=21898 Unfortunately, based on the description here I cannot tell whether the libstdc++ choice interferes with the use of errno for these cases. I'm happy to discuss this further.