ERR(3)                         Library Routines                         ERR(3)




NAME

       err,  verr,  errx,  verrx,  warn,  vwarn,  warnx, vwarnx, err_set_file,
       err_set_exit - formatted error messages


SYNOPSIS

       #include <err.h>

       void err (int eval, const char *fmt, ...);
       void verr (int eval, const char *fmt, va_list args);
       void errx (int eval, const char *fmt, ...);
       void verrx (int eval, const char *fmt, va_list args);
       void warn (const char *fmt, ...);
       void vwarn (const char *fmt, va_list args);
       void warnx (const char *fmt, ...);
       void vwarnx (const char *fmt, va_list args);
       void err_set_file (void *fp);
       void err_set_exit (void (*exitf)(int));


DESCRIPTION

       The err and warn family of functions display a formatted error  message
       on  the  standard  error output, or on another file specified using the
       err_set_file function.  In all cases, the last component of the program
       name,  a  colon character, and a space are output.  If the fmt argument
       is not NULL, the formatted error message,  a  colon  character,  and  a
       space  are output.  In the case of the err, verr, warn, and vwarn func‐
       tions, the error message string affiliated with the  current  value  of
       the  global variable errno is output.  In all cases, the output is fol‐
       lowed by a newline character.

       The err, verr, errx, and verrx functions do not return, but  exit  with
       the  value of the argument (eval) The err_set_exit function can be used
       to specify a function which is called before  exit(3)  to  perform  any
       necessary cleanup; passing a null function pointer for exitf resets the
       hook to do nothing.


EXAMPLES

       Display the current errno information string and exit:

              if ((p = malloc(size)) == NULL)
                   err(1, NULL);
              if ((fd = open(file_name, O_RDONLY, 0)) == -1)
                   err(1, "%s", file_name);


       Display an error message and exit:

              if (tm.tm_hour < START_TIME)
                   errx(1, "too early, wait until %s", start_time_string);


       Warn of an error:

              if ((fd = open(raw_device, O_RDONLY, 0)) == -1)
                   warnx("%s: %s: trying the block device",
                       raw_device, strerror(errno));
              if ((fd = open(block_device, O_RDONLY, 0)) == -1)
                   err(1, "%s", block_device);



SEE ALSO

       exit(3), strerror(3)


HISTORY

       The err and warn functions first appeared in 4.4BSD.



GNO                            27 February 1997                         ERR(3)

Man(1) output converted with man2html