Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (2) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

perror(2)

ERRSTR(2)

NAME

errstr, rerrstr, werrstr − description of last system call error

SYNOPSIS

­#include <u.h>
­#include <libc.h>

int errstr(char ∗err, uint nerr)

void rerrstr(char ∗err, uint nerr)

void werrstr(char ∗fmt, ...) 

DESCRIPTION

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. 

SOURCE

­/sys/src/libc/9syscall
­/sys/src/libc/9sys/werrstr.c

DIAGNOSTICS

­Errstr always returns 0. 

SEE ALSO

intro(2), perror(2)

Plan 9  —  March 25, 2004

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026