vfprintf

write formatted output to a file

Synopsis:

#include <stdio.h>
#include <stdarg.h>
int vfprintf( FILE *fp,
              const char *format,
              va_list arg );

Description:

The vfprintf() function writes output to the file pointed to by fp, under control of the argument format. The format string is described under the description of the printf() function. 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 vfprintf() function returns the number of characters written, or a negative value if an output error occurred. When an error has occurred, errno contains a value that indicates the type of error that has been detected.

See also:

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

Examples:

#include <stdio.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 );
    }
  }

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

Classification:

ANSI

Systems:

All (except DOS/PM)