[Previous]
[Contents]
[Next]

vsprintf()

write formatted output to a buffer

Synopsis:

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

int vsprintf( char *buf,
              const char *format,
              va_list arg );

Description:

The vsprintf() function formats data under control of the format control string, and writes the result to buf. The format string is described under the description of the printf() function. The vsprintf() function is equivalent to the sprintf() function, with the variable argument list replaced with arg, which has been initialized by the va_start() macro.

Returns:

The number of characters written, or a negative value if an output error occurred.

Examples:

The following shows the use of vsprintf() in a general error message routine:

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

char msgbuf[80];

char *fmtmsg( char *format, ... )
  {
    va_list arglist;

    va_start( arglist, format );
    strcpy( msgbuf, "Error: " );
    vsprintf( &msgbuf[7], format, arglist );
    va_end( arglist );
    return( msgbuf );
  }

void main()
  {
    char *msg;

    msg = fmtmsg( "%s %d %s", "Failed", 100, "times" );
    printf( "%s\n", msg );
  }

Classification:

ANSI

Safety:
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

_bprintf(), cprintf(), fprintf(), printf(), sprintf(), va_arg(), va_end(), va_start(), _vbprintf(), vcprintf(), vfprintf(), vprintf()


[Previous]
[Contents]
[Next]