errstr, rerrstr, werrstr – description of last system call error|
int errstr(char *err, uint nerr)
void rerrstr(char *err, uint nerr)
void werrstr(char *fmt, ...)
When a system call fails it returns –1 and records a null terminated
string describing the error in a per–process buffer. Errstr swaps
the contents of that buffer with the contents of the array err.
Errstr will write at most nerr bytes into err; if the per–process
error string does not fit, it is silently truncated at a UTF
character boundary. The returned string is NUL–terminated. Usually
errstr will be called with an empty string, but the exchange property
provides a mechanism for libraries to set the return value for
the next call to errstr. |
The per–process buffer is ERRMAX bytes long. Any error string provided by the user will be truncated at ERRMAX–1 bytes. ERRMAX is defined in <libc.h>.
If no system call has generated an error since the last call to errstr with an empty string, the result is an empty string.
The verb r in print(2) calls errstr and outputs the error string.
Rerrstr reads the error string but does not modify the per–process buffer, so a subsequent errstr will recover the same string.
Werrstr takes a print style format as its argument and uses it
to format a string to pass to errstr. The string returned from
errstr is discarded.
Errstr always returns 0.|