diff options
authorRich Felker <>2013-02-07 03:05:54 -0500
committerRich Felker <>2013-02-07 03:05:54 -0500
commitd75348ddda4e63c2a36c292a5b64b78d46e24422 (patch)
parent526900484ca5673630a5838e081db685c6856fe2 (diff)
improve error strings
this definitely has the potential to be a bikeshed topic, so some justification is in order. most of the changes made fit into one of the following categories: 1. alignment with text in posix, xsh 2.3 2. eliminating overly-specific text for shared error codes 3. making the message match more closely with the macro name 4. removing extraneous words in particular, the EAGAIN/EWOULDBLOCK text is updated to match the description of EAGAIN (which covers both uses) rather than saying the operation would block, and ENOTSUP/EOPNOTSUPP is updated not to mention sockets. the distinction between ENFILE/EMFILE has also been clarified; ENFILE is aligned with the posix text, and EMFILE, which lacks concise posix text matching any historic message, is updated to emphasize that the exhausted resource is not open files/open file descriptions, but rather the integer 'address space' of file descriptors. some messages may be further tweaked based on feedback.
1 files changed, 30 insertions, 27 deletions
diff --git a/src/errno/__strerror.h b/src/errno/__strerror.h
index d291a7cd..c9aabf5d 100644
--- a/src/errno/__strerror.h
+++ b/src/errno/__strerror.h
@@ -5,7 +5,7 @@
* of the strings remains synchronized. */
E(EILSEQ, "Illegal byte sequence")
-E(EDOM, "Argument outside domain")
+E(EDOM, "Domain error")
E(ERANGE, "Result not representable")
E(ENOTTY, "Not a tty")
@@ -15,25 +15,25 @@ E(ENOENT, "No such file or directory")
E(ESRCH, "No such process")
E(EEXIST, "File exists")
-E(EOVERFLOW, "Value too large for defined data type")
+E(EOVERFLOW, "Value too large for data type")
E(ENOSPC, "No space left on device")
E(ENOMEM, "Out of memory")
-E(EBUSY, "Device or resource busy")
+E(EBUSY, "Resource busy")
E(EINTR, "Interrupted system call")
-E(EAGAIN, "Operation would block")
-E(ESPIPE, "Illegal seek")
+E(EAGAIN, "Resource temporarily unavailable")
+E(ESPIPE, "Invalid seek")
E(EXDEV, "Cross-device link")
E(EROFS, "Read-only file system")
E(ENOTEMPTY, "Directory not empty")
E(ECONNRESET, "Connection reset by peer")
-E(ETIMEDOUT, "Connection timed out")
+E(ETIMEDOUT, "Operation timed out")
E(ECONNREFUSED, "Connection refused")
E(EHOSTDOWN, "Host is down")
-E(EHOSTUNREACH, "No route to host")
-E(EADDRINUSE, "Address already in use")
+E(EHOSTUNREACH, "Host is unreachable")
+E(EADDRINUSE, "Address in use")
E(EPIPE, "Broken pipe")
E(EIO, "I/O error")
@@ -48,51 +48,54 @@ E(ENOEXEC, "Exec format error")
E(EINVAL, "Invalid argument")
E(E2BIG, "Argument list too long")
-E(ELOOP, "Too many levels of symbolic links")
+E(ELOOP, "Symbolic link loop")
E(ENAMETOOLONG, "Filename too long")
-E(ENFILE, "File table overflow")
-E(EMFILE, "Too many open files")
-E(EBADF, "Bad file number")
-E(ECHILD, "No child processes")
+E(ENFILE, "Too many open files in system")
+E(EMFILE, "No file descriptors available")
+E(EBADF, "Bad file descriptor")
+E(ECHILD, "No child process")
E(EFAULT, "Bad address")
E(EFBIG, "File too large")
E(EMLINK, "Too many links")
-E(ENOLCK, "No record locks available")
+E(ENOLCK, "No locks available")
E(EDEADLK, "Resource deadlock would occur")
-E(ENOSYS, "Function not supported")
+E(ENOTRECOVERABLE, "State not recoverable")
+E(EOWNERDEAR, "Previous owner died")
+E(ECANCELED, "Operation canceled")
+E(ENOSYS, "Function not implemented")
E(ENOMSG, "No message of desired type")
E(EIDRM, "Identifier removed")
E(ENOSTR, "Device not a stream")
E(ENODATA, "No data available")
-E(ETIME, "Timer expired")
+E(ETIME, "Device timeout")
E(ENOSR, "Out of streams resources")
E(ENOLINK, "Link has been severed")
E(EPROTO, "Protocol error")
-E(EBADMSG, "Not a data message")
+E(EBADMSG, "Bad message")
E(EBADFD, "File descriptor in bad state")
-E(ENOTSOCK, "Socket operation on non-socket")
+E(ENOTSOCK, "Not a socket")
E(EDESTADDRREQ, "Destination address required")
-E(EMSGSIZE, "Message too long")
+E(EMSGSIZE, "Message too large")
E(EPROTOTYPE, "Protocol wrong type for socket")
E(ENOPROTOOPT, "Protocol not available")
E(EPROTONOSUPPORT,"Protocol not supported")
E(ESOCKTNOSUPPORT,"Socket type not supported")
-E(EOPNOTSUPP, "Operation not supported on socket")
+E(ENOTSUP, "Not supported")
E(EPFNOSUPPORT, "Protocol family not supported")
E(EAFNOSUPPORT, "Address family not supported by protocol")
-E(EADDRNOTAVAIL,"Cannot assign requested address")
+E(EADDRNOTAVAIL,"Address not available")
E(ENETDOWN, "Network is down")
-E(ENETUNREACH, "Network is unreachable")
-E(ENETRESET, "Network dropped connection because of reset")
-E(ECONNABORTED, "Software caused connection abort")
+E(ENETUNREACH, "Network unreachable")
+E(ENETRESET, "Connection reset by network")
+E(ECONNABORTED, "Connection aborted")
E(ENOBUFS, "No buffer space available")
E(EISCONN, "Socket is connected")
-E(ENOTCONN, "Socket is not connected")
+E(ENOTCONN, "Socket not connected")
E(ESHUTDOWN, "Cannot send after socket shutdown")
E(EALREADY, "Operation already in progress")
-E(EINPROGRESS, "Operation now in progress")
-E(ESTALE, "Stale NFS file handle")
+E(EINPROGRESS, "Operation in progress")
+E(ESTALE, "Stale file handle")
E(EREMOTEIO, "Remote I/O error")
E(EDQUOT, "Quota exceeded")
E(ENOMEDIUM, "No medium found")