/********************************************************************** * Copyright (c) Digital Equipment Corporation 1984, 1985, 1986. * * All Rights Reserved. * * Reference "/usr/src/COPYRIGHT" for applicable restrictions. * **********************************************************************/ static char Sccsid[]="@(#)xmsg.c 3.0 4/22/86"; /* Call fatal with an appropriate error message based on errno. If no good message can be made up, it makes up a simple message. The second argument is a pointer to the calling functions name (a string); it's used in the manufactured message. */ # include "errno.h" # include "sys/types.h" # include "macros.h" xmsg(file,func) char *file, *func; { register char *str; extern int errno; extern char Error[]; switch (errno) { case ENFILE: str = "no file (ut3)"; break; case ENOENT: sprintf(str = Error,"`%s' nonexistent (ut4)",file); break; case EACCES: str = (char *)alloca(size(file)); copy(file,str); file = str; sprintf(str = Error,"directory `%s' unwritable (ut2)", dname(file)); break; case ENOSPC: str = "no space! (ut10)"; break; case EFBIG: str = "write error (ut8)"; break; default: sprintf(str = Error,"errno = %d, function = `%s' (ut11)",errno, func); break; } return(fatal(str)); }