Print this page
12953 convert printf(3c) and vprintf(3c) to mdoc
Change-Id: Iffbfe29bbd443e1a7ad0fc33fd7a7851428a3dc8

@@ -1,134 +1,115 @@
 VPRINTF(3C)              Standard C Library Functions              VPRINTF(3C)
 
-
-
 NAME
        vprintf, vfprintf, vsprintf, vsnprintf, vasprintf - print formatted
        output of a variable argument list
 
+LIBRARY
+     Standard C Library (libc, -lc)
+
 SYNOPSIS
-       #include <stdio.h>
        #include <stdarg.h>
+     #include <stdio.h>
 
-       int vprintf(const char *format, va_list ap);
+     int
+     vprintf(const char *format, va_list);
 
+     int
+     vfprintf(FILE *stream, const char *format, va_list ap);
 
-       int vfprintf(FILE *stream, const char *format, va_list ap);
+     int
+     vsprintf(char *s, const char *format, va_list ap);
 
+     int
+     vsnprintf(char *s, size_t n, const char *format, va_list ap);
 
-       int vsprintf(char *s, const char *format, va_list ap);
+     int
+     vasprintf(char **ret, const char *format, va_list ap);
 
-
-       int vsnprintf(char *s, size_t n, const char *format, va_list ap);
-
-
-       int vasprintf(char **ret, const char *format, va_list ap);
-
-
 DESCRIPTION
        The vprintf(), vfprintf(), vsprintf(), vsnprintf(), and vasprintf()
-       functions are the same as printf(), fprintf(), sprintf(), snprintf(),
-       and asprintf(), respectively, except that instead of being called with
-       a variable number of arguments, they are called with an argument list
-       as defined in the <stdarg.h> header. See printf(3C).
+     functions are the same as printf(), fprintf(), sprintf(), snprintf(), and
+     asprintf(), respectively, except that instead of being called with a
+     variable number of arguments, they are called with an argument list as
+     defined in the <stdarg.h> header.  See printf(3C).
 
-
        The <stdarg.h> header defines the type va_list and a set of macros for
        advancing through a list of arguments whose number and types may vary.
        The argument ap to the vprint family of functions is of type va_list.
-       This argument is used with the <stdarg.h> header file macros
-       va_start(), va_arg(), and va_end() (see stdarg(3EXT)). The EXAMPLES
-       section below demonstrates the use of va_start() and va_end() with
-       vprintf().
+     This argument is used with the <stdarg.h> header file macros va_start(),
+     va_arg(), and va_end() (see stdarg(3EXT)).  The EXAMPLES section below
+     demonstrates the use of va_start() and va_end() with vprintf().
 
-
        The macro va_alist() is used as the parameter list in a function
        definition, as in the function called error() in the example below. The
-       macro va_start(ap, name), where ap is of type va_list and name is the
-       rightmost parameter (just before ...), must be called before any
-       attempt to traverse and access unnamed arguments is made. The
-       va_end(ap) macro must be invoked when all desired arguments have been
-       accessed. The argument list in ap can be traversed again if va_start()
-       is called again after va_end(). In the example below, the error()
-       arguments (arg1, arg2, ...) are passed to vfprintf() in the argument
-       ap.
+     macro `va_start(ap, name)', where ap is of type va_list and name is the
+     rightmost parameter (just before ...), must be called before any attempt
+     to traverse and access unnamed arguments is made.  The `va_end(ap)' macro
+     must be invoked when all desired arguments have been accessed.  The
+     argument list in ap can be traversed again if va_start() is called again
+     after va_end().  In the example below, the error() arguments (arg1, arg2,
+     ...) are passed to vfprintf() in the argument ap.
 
 RETURN VALUES
        Refer to printf(3C).
 
-ERRORS
-       The vprintf() and vfprintf() functions will fail if either the stream
-       is unbuffered or the stream's buffer needed to be flushed and:
-
-       EFBIG
-                The file is a regular file and an attempt was made to write at
-                or beyond the offset maximum.
-
-
 EXAMPLES
        Example 1 Using vprintf() to write an error routine.
 
+     The following demonstrates how vfprintf() could be used to write an error
+     routine:
 
-       The following demonstrates how vfprintf() could be used to write an
-       error routine:
-
-
-         #include <stdio.h>
          #include <stdarg.h>
-         ...
+     #include <stdio.h>
+
          /*
           *   error should be called like
           *         error(function_name, format, arg1, ...);
           */
-         void error(char *function_name, char *format, ...)
+     void
+     error(char *function_name, char *format, ...)
          {
                  va_list ap;
+
                  va_start(ap, format);
-                 /* print out name of function causing error */
+
+             /* Print out name of function causing error */
                  (void) fprintf(stderr, "ERR in %s: ", function_name);
-                 /* print out remainder of message */
+
+             /* Print out remainder of message */
                  (void) vfprintf(stderr, format, ap);
+
                  va_end(ap);
+
                  (void) abort();
          }
 
+ERRORS
+     The vfprintf() function will fail if either the stream is unbuffered or
+     the stream's buffer needed to be flushed and:
 
-ATTRIBUTES
-       See attributes(5) for descriptions of the following attributes:
+     EFBIG              The file is a regular file and an attempt was made to
+                        write at or beyond the offset maximum.
 
+INTERFACE STABILITY
+     Committed
 
+MT-LEVEL
+     All of these functions can be used safely in multithreaded applications,
+     as long as setlocale(3C) is not being called to change the locale.
 
-
-       +--------------------+-----------------+
-       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
-       +--------------------+-----------------+
-       |Interface Stability | Committed       |
-       +--------------------+-----------------+
-       |MT-Level            | See below.      |
-       +--------------------+-----------------+
-       |Standard            | See below.      |
-       +--------------------+-----------------+
-
-
-       All of these functions can be used safely in multithreaded
-       applications, as long as setlocale(3C) is not being called to change
-       the locale.
-
-
-       See standards(5) for the standards conformance of vprintf(),
-       vfprintf(), vsprintf(), and vsnprintf(). The vasprintf() function is
-       modeled on the one that appears in the FreeBSD, NetBSD, and GNU C
-       libraries.
-
 SEE ALSO
-       printf(3C), attributes(5), stdarg(3EXT), attributes(5), standards(5)
+     printf(3C), stdarg(3EXT), attributes(5), standards(5)
 
+STANDARDS
+     See standards(5) for the standards conformance of vprintf(), vfprintf(),
+     vsprintf(), and vsnprintf().  The vasprintf() function is modeled on the
+     one that appears in the FreeBSD, NetBSD, and GNU C libraries.
+
 NOTES
-       The vsnprintf() return value when n = 0 was changed in the Solaris 10
+     The vsnprintf() return value when n is 0 was changed in the Solaris 10
        release. The change was based on the SUSv3 specification. The previous
-       behavior was based on the initial SUSv2 specification, where
-       vsnprintf() when n = 0 returns an unspecified value less than 1.
+     behavior was based on the initial SUSv2 specification, where vsnprintf()
+     when n is 0 returns an unspecified value less than 1.
 
-
-
-                                January 7, 2009                    VPRINTF(3C)
+illumos                          July 10, 2020                         illumos