* Adhemerval Zanella: > > > On 18/01/2022 02:27, xuyang2018.jy--- via Libc-alpha wrote: >> on 2022/1/18 11:56, Theodore Ts'o wrote: >>> On Tue, Jan 18, 2022 at 02:43:26AM +0000, xuyang2018.jy@xxxxxxxxxxx wrote: >>>>> You're right of course, but out of curiosity, which C library are you >>>>> using? >>>> I use glibc-2.34. >>> >>> Hmm, ok. I'm using glibc 2.31, and in this particular program, errno >>> shouldn't have been set by any prior system call. I'm guessing maybe >>> it was something in crt0 which ended up setting errno? >> It maybe a glibc bug. >> I cc glibc mailing list and see whether they have met this problem. >> >> @Florian >> >> Now, I use glibc-2.34 and run the following program[1] but the errno is >> not 0 in the beginning. So is this a known bug on glibc-2.34(Theodore >> doesn't meet this problem on glicb-2.31)? >> >> [1]https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/tree/src/ext4_resize.c > > The errno should be only set on a failure, no function shall set errno > to 0 (it is a POSIX definition which glibc adheres). The application > need to explicitly set errno to 0 before the function call to check if > an error occurs. While this is true, I think errno should still be 0 at the start of the program. Thanks, Florian