VMS Help
CRTL, vfwprintf
*Conan The Librarian
|
Writes output to the stream under control of the wide-character
format string.
Format
#include <wchar.h>
int vfwprintf (FILE *stream, const wchar_t *format, va_list
ap);
stream
A file pointer.
format
A pointer to a wide-character string containing the format
specifications.
ap
A variable list of the items needed for output.
The vfwprintf function is equivalent to the fwprintf function,
with the variable argument list replaced by the ap argument.
Initialize ap with the va_start macro (and possibly with
subsequent va_arg calls) from <stdarg.h>.
If the stream pointed to by stream has no orientation, vfwprintf
makes the stream wide-oriented.
See also fwprintf.
n The number of wide characters written.
Negative value Indicates an error. The function sets errno to
one of the following:
o EILSEQ - Invalid character detected.
o EINVAL - Insufficient arguments.
o ENOMEM - Not enough memory available for
conversion.
o ERANGE - Floating-point calculations
overflow.
o EVMSERR - Nontranslatable OpenVMS error.
vaxc$errno contains the OpenVMS error code.
This might indicate that conversion to a
numeric value failed because of overflow.
The function can also set errno to the
following as a result of errors returned from
the I/O subsystem:
o EBADF - The file descriptor is not valid.
o EIO - I/O error.
o ENOSPC - No free space on the device
containing the file.
o ENXIO - Device does not exist.
o EPIPE - Broken pipe.
o ESPIPE - Illegal seek in a file opened for
append.
o EVMSERR - Nontranslatable OpenVMS error.
vaxc$errno contains the OpenVMS error code.
This indicates that an I/O error occurred
for which there is no equivalent C error
code.
The following example shows the use of the vfwprintf function
in a general error reporting routine:
#include <stdarg.h>
#include <stdio.h>
#include <wchar.h>
void error(char *function_name, wchar_t *format, . . . );
{
va_list args;
va_start(args, format);
/* print out name of function causing error */
fwprintf(stderr, L"ERROR in %s: ", function_name);
/* print out remainder of message */
vfwprintf(stderr, format, args);
va_end(args);
}