.Dd September 27, 2015 .Dt ERR 3 .Os .Sh NAME .Nm err .Nd format an error message .Sh SYNOPSIS .In errno.h .Vt extern int errno ; .Fd #define EPERM 1 .Fd #define ENOENT 2 .Fd #define ESRCH 3 .Fd #define EINTR 4 .In err.h .Ft void .Fo err .Fa "int eval" .Fa "const char *fmt" .Fa ... .Fc .Sh DESCRIPTION If the variable .Va errno has the value .Er ENOENT , the function .Fn err prints the message .Dq \&No such file or directory . .Pp Note that some of the macros differ between SYNOPSIS and DESCRIPTION: .Bl -dash .It When citing the type of a global variable, even when followed by the name, use .Ic \&Vt . When citing the name only, use .Ic \&Va . .It When citing a complete preprocessor definition line in the SYNOPSIS, use .Ic \&Fd . When mentioning the defined constant only, use .Ic \&Dv , or .Ic \&Er if it's an error number. .It The name of a function with multiple arguments appears behind .Ic \&Fo in the SYNOPSIS. When mentioning the function name again in isolation, use .Ic \&Fn . .El .Pp The error message itself sets a minor trap: It needs to be quoted, either by prepending a zero-width space .Pq Sq \e& , or by enclosing it in double quotes. Otherwise, the word .Sq \&No is misinterpreted as the macro .Ic \&No and hence lost from the output.