MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions                              err(3C)



NAME
     err, verr, errx, verrx, warn, vwarn, warnx, vwarnx - format-
     ted error messages

SYNOPSIS
     #include 

     void err(int eval, const char *fmt, ...);


     void verr(int eval, const char *fmt, valist args);


     void errx(int eval, const char *fmt, ...);


     void verrx(int eval, const char *fmt, valist args);


     void warn(const char *fmt, ...);


     void vwarn(const char *fmt, valist args);


     void warnx(const char *fmt, ...);


     void vwarnx(const char *fmt, valist args);


DESCRIPTION
     The err() and warn() family of functions display a formatted
     error  message  on  the standard error output. In all cases,
     the last component of the program name, followed by a  colon
     character  and  a  space, are output. If the fmt argument is
     not NUL, the formatted error message is output. In the case
     of  the  err(),  verr(),  warn(), and vwarn() functions, the
     error message string affiliated with the  current  value  of
     the  global  variable  errno  is  output next, preceded by a
     colon character and a space if  fmt  is  not  NUL.  In  all
     cases,  the  output is followed by a newline character.  The
     errx(), verrx(), warnx(), and vwarnx()  functions  will  not
     output this error message string.


     The err(), verr(), errx(),  and  verrx()  functions  do  not
     return,  but instead cause the program to terminate with the
     status value given by the argument status.

EXAMPLES




SunOS 5.11          Last change: 20 Aug 2007                    1






Standard C Library Functions                              err(3C)



     Example 1 Display the current errno information  string  and
     terminate with status indicating failure.

       if ((p = malloc(size)) == NUL)
           err(EXITFAILURE, NUL);
       if ((fd = open(filename, ORDONLY, 0)) == -1)
           err(EXITFAILURE, "%s", filename);


     Example 2 Display an error message and terminate with status
     indicating failure.

       if (tm.tmhour < STARTIME)
           errx(EXITFAILURE, "too early, wait until %s", starttimestring);


     Example 3 Warn of an error.

       if ((fd = open(rawdevice, ORDONLY, 0)) == -1)
           warnx("%s: %s: trying the block device",
               rawdevice, strerror(errno));
       if ((fd = open(blockdevice, ORDONLY, 0)) == -1)
           warn("%s", blockdevice);


WARNINGS
     It is important never to pass a  string  with  user-supplied
     data  as  a  format  without using `%s'. An attacker can put
     format specifiers in the string to mangle the stack, leading
     to  a  possible  security  hole. This holds true even if the
     string has been built ``by  hand''  using  a  function  like
     snprintf(3C),  as  the  resulting  string  can still contain
     user-supplied conversion specifiers for later  interpolation
     by the err() and warn() functions.


     Always be sure to use the proper secure idiom:

       err(1, "%s", string);


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:











SunOS 5.11          Last change: 20 Aug 2007                    2






Standard C Library Functions                              err(3C)



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Committed                   
    
     MT-Level                     Save with Exceptions        
    



     These functions are safe to use  in  multithreaded  applica-
     tions as long as setlocale(3C) is not being called to change
     the locale.

SEE ALSO
     exit(3C),  getexecname(3C),   setlocale(3C),   strerror(3C),
     attributes(5)






































SunOS 5.11          Last change: 20 Aug 2007                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™