Linuxのユーザーランドで、gcc 4.4、glibc-2.11.1のamd64対応64ビット環境の場合、次のように定義されている。 errno.h extern int errno; bits/errno.h extern int *__errno_location (void) __THROW __attribute__ ((__const__)); #define errno (*__errno_location ()) __errno_location()は、Linuxカーネルではなくglibc内に処理がある。 glibc-2.11.1/csu/errno-loc.c __errno_location (void) { return &errno; } glibc-2.11.1/csu/errno.c __thread int errno; このようにして、gccでは、errno