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