私はこのコードを見ました:
#if !defined(errno)
extern int errno;
#endif
だから私の質問はerrno
int か macroか#if
どうかです。extern int errno;
errno.h では、このように定義されています
#ifdef _ERRNO_H
/* Declare the `errno' variable, unless it's defined as a macro by
bits/errno.h. This is the case in GNU, where it is a per-thread
variable. This redeclaration using the macro still works, but it
will be a function declaration without a prototype and may trigger
a -Wstrict-prototypes warning. */
#ifndef errno
extern int errno;
#endif
#endif