they certainly differ between Unix system variants they differ between xBSD and Linux. finding them on Linux is fun: errno.h -> bits/errno.h + ifdefs + defs -> linux/errno.h -> asm/errno.h [whew!] which i note in passing has #define EWOULDBLOCK EAGAIN amongst other values, i find for example on FreeBSD: #define ENETDOWN 50 /* Network is down */ #define ENETUNREACH 51 /* Network is unreachable */ #define ENETRESET 52 /* Network dropped connection on reset */ but on Linux: #define ENETDOWN 100 /* Network is down */ #define ENETUNREACH 101 /* Network is unreachable */ #define ENETRESET 102 /* Network dropped connection because of reset */ and on Irix5.3 and Solaris #define ENETDOWN 127 /* Network is down */ #define ENETUNREACH 128 /* Network is unreachable */ #define ENETRESET 129 /* Network dropped connection because so all in all it seems a relative waste of time and effort to make Plan 9's match one rather than the other.