[Previous] [Contents] [Index] [Next]

vfprintf()

Write formatted output to a file

Synopsis:

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

int vfprintf( FILE* fp,
              const char* format,
              va_list arg );

Library:

libc

Description:

The vfprintf() function writes output to the file pointed to by fp, under control of the argument format. For information about the format string, see the description of printf().

The vfprintf() function is equivalent to the fprintf() 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 (errno is set).

Examples:

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

FILE *LogFile;

/* a general error routine */

void errmsg( char *format, ... )
  {
    va_list arglist;

    fprintf( stderr, "Error: " );
    va_start( arglist, format );
    vfprintf( stderr, format, arglist );
    va_end( arglist );
    if( LogFile != NULL ) {
      fprintf( LogFile, "Error: " );
      va_start( arglist, format );
      vfprintf( LogFile, format, arglist );
      va_end( arglist );
    }
  }

int main( void )
  {
    LogFile = fopen( "error.log", "w" );
    errmsg( "%s %d %s", "Failed", 100, "times" );
    return EXIT_SUCCESS;
  }

Classification:

ANSI

Safety:
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes

See also:

errno, fprintf(), printf(), sprintf(), va_arg(), va_end(), va_start(), vprintf(), vsprintf()


[Previous] [Contents] [Index] [Next]