standardized error messages
John Quarterman
jsq at ut-sally.UUCP
Fri Aug 2 06:43:46 AEST 1985
From: John Quarterman (moderator) <std-unix-request at ut-sally>
Topic: standardized error messages
----------------------------------------------------------------------
From: oakhill!mot!fred (Fred Christiansen)
Date: Fri, 26 Jul 85 16:19:00 cdt
To: oakhill!ut-sally!jsq at tzec.UTEXAS.ARPA
Subject: Re: standardized error messages
the SVID has specifics in Appendix BASE 5.6 (p. 341), which i shall attempt
to summarize:
the std error msg has 5 parts:
Label who's issuing this msg
Severity 4 possible codes (halt, error, warning, fyi)
Problem what went wrong
Action "TO FIX" do such and such
Tag unique error msg id which can be used to
track down more info
Fred Christiansen ("Canajun, eh?") @ Motorola Microsystems, Tempe, AZ
UUCP: ihnp4!{attunix, btlunix, drivax, sftig, ut-sally!oakhill}!mot!fred
ARPA: oakhill!mot!fred at ut-sally.ARPA AT&T: 602-438-3472
------------------------------
From: Mike Trachtman <wizard%wisdom.bitnet at WISCVM.ARPA>
Date: Sun, 28 Jul 85 14:59:04 -0200
To: std-unix at ut-sally.arpa
Subject: standard error messages.
A standard for error messages should be very strict about punctuation,
and where line numbers go.
somthing like
command: filename (linenumber) - severity - message
this is getting kind of IBMsh, but programs should be able
to parse errors, and thus errors should be in a standard form.
errors should definitely include the following
1) the filename where the error was
2) the line number
3) the error, (or in greps case, the line that contained the word
optionally, but in a set format
1) the command or routine that found the error
2) the Unix errno
3) some program generated error number
4) an indication of the severity
Of course, these are only opinions, and they are only my opinions.
Mike
wizard at wisdom (BITNET)
wizard%wisdom.bitnet at wiscvm.ARPA (ARPA/CSNET)
wizard%wisdom.bitnet at berkley (ARPA/CSNET)
and if all else fails (ONLY for VERY short items)
...!decvax!humus!wisdom!wizard (UUCP)
------------------------------
Date: Wed, 24 Jul 85 16:18:22 edt
From: Chris Torek <chris at maryland>
To: std-unix at ut-sally
Subject: Re: standardized error messages
Hm. It's probably too late, but I would suggest that any standard
library routine for printing error message use printf-style
conversions (preferably it should be exactly like printf once you
get past severity stuff and whatnot).
In case anyone wants it, here's the routine I installed in our C
library on our "experimental" machine (it wants a bit of support
in the startup code to set _argv0 to argv[0], so that the program
name is included in error messages, but will work without it). It
is not (alas!) portable, but can be made to work on any of the
popular Unix machines. (I have a manual entry, if anyone cares.)
Chris
#include <stdio.h>
char *_argv0; /* argv[0], set by C startup code */
/*
* error - University of Maryland specific (sigh)
*
* Useful for printing error messages. Will print the program name
* and (optionally) the system error associated with the values in
* <errno.h>.
*
* Note that the type (and even the existence!) of ``arg'' is undefined.
*/
error(quit, e, fmt, arg)
int quit;
register int e;
char *fmt;
{
extern char *sys_errlist[];
extern int sys_nerr;
register char *p = _argv0;
if (p != NULL) {
#ifdef optional
char *s, *rindex();
if ((s = rindex(p, '/')) != NULL)
p = s + 1;
#endif
(void) fprintf(stderr, "%s: ", p);
}
_doprnt(fmt, &arg, stderr); /* magic */
if (e > 0) {
p = e < sys_nerr ? sys_errlist[e] : "unknown error";
(void) fprintf(stderr, ": %s", p);
}
(void) putc('\n', stderr);
(void) fflush(stderr);
if (quit)
exit(quit);
}
------------------------------
Discussions-Of: UNIX standards, particularly the IEEE P1003 draft standard.
Submissions-To: ut-sally!std-unix or std-unix at ut-sally.ARPA
Comments-To: ut-sally!std-unix-request or std-unix-request at ut-sally.ARPA
UUCP-Routes: {ihnp4,seismo,harvard,gatech}!ut-sally!std-unix
Archives-In: ~ftp/pub/mod.std.unix on ut-sally.ARPA (soon sally.UTEXAS.EDU)
More information about the Mod.std.unix
mailing list