summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2002-06-18 08:41:28 +0000
committerManuel Novoa III <mjn3@codepoet.org>2002-06-18 08:41:28 +0000
commit5b0c2c6d870cc9f9f2eae32f4d71abc6f9348e20 (patch)
tree60d5b9ee265a8d359484c6dbb3d25da6f209718e /libc/sysdeps/linux
parent6f1e6c22ab67fbb7b5642e142ac3c1f4d6968263 (diff)
Fix perror() and printf("%m") to not call strerror(), as required by the
standards. Temporarily added a utility function to wrap Erik's strerror_r so that "Unknown error xxx" strings can be generated for errno's which cause strerror_r to fail. That utility function will eventually be merged in with the strerror/strerror_r functions when I change over to optionallly mmap'ing the system error strings to provide for lower mem comsumption on non-MMU platforms, as well as locale-specific system error messages.
Diffstat (limited to 'libc/sysdeps/linux')
-rw-r--r--libc/sysdeps/linux/common/bits/uClibc_stdio.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/common/bits/uClibc_stdio.h b/libc/sysdeps/linux/common/bits/uClibc_stdio.h
index 83ca2fb04..1a559bd9c 100644
--- a/libc/sysdeps/linux/common/bits/uClibc_stdio.h
+++ b/libc/sysdeps/linux/common/bits/uClibc_stdio.h
@@ -438,6 +438,14 @@ typedef enum {
__UIM_UPPER = 'A' - 10,
} __UIM_CASE;
+/* WARNING!!! While similar to the glibc strerror_r function, the
+ * following function is not the same. It expects "unknown" error
+ * strings will fit in the buffer passed. Also, the return value
+ * may not be == buf, as unknown strings are "right-justified" in
+ * the buf due to the way _int10stostr works. */
+
+extern char *_stdio_strerror_r(int err, char *buf, size_t buflen);
+
/* Write a NULL-terminated list of "char *" args to file descriptor fd.
* For an example of usage, see __assert.c.
*/