If ISO C says errno is unchanged for a succesful return, there are many ISO C functions in glibc call the none ISO C system calls which change errno in the current glibc. H.J.