vsprintf() — Format and Print Data to Buffer

Format

#include <stdarg.h>
#include <stdio.h>

int vsprintf(char *  __restrict__target-string, 
             const char *  __restrict__format, va_list arg_ptr);

General Description

The vsprintf() function is equivalent to the sprintf() function, except that instead of being called with a variable number of arguments, it is called with an argument list as defined in stdarg.h. For a specification of the format string, see sprintf() — Format and Write Data.

Initialize the argument list by using the va_start macro before each call. These functions do not invoke the va_end macro, but instead invoke the va_arg macro causing the value of arg after the return to be unspecified.

Notes:
  1. Use of vsprintf() requires that an environment has been set up by using the __cinit() function. When the function is called, GPR 12 must contain the environment token created by the __cinit() call.
  2. In contrast to some UNIX-based implementations of the C language, the z/OS XL C/C++ implementation of the vprintf() family increments the pointer to the variable arguments list. To control whether the pointer to the argument is incremented, call the va_end macro after each call to vsprintf().

Returned Value

If successful, vsprintf() returns the number of characters written target-string.

If unsuccessful, vsprintf() returns a negative value.

Related Information