fwprintf

Writes output to the stream under control of the wide-character format string.

Format

#include  <wchar.h>

int fwprintf  (FILE *stream, const wchar_t
              *format, . . . );

Arguments

stream
A file pointer.
format
A pointer to a wide-character string containing the format specifications. For more information about format and conversion specifications and their corresponding arguments, see Chapter 2.
. . .
Optional expressions whose resultant types correspond to conversion specifications given in the format specification.

If no conversion specifications are given, the output sources can be omitted. Otherwise, the function calls must have exactly as many output sources as there are conversion specifications, and the conversion specifications must match the types of the output sources.

Conversion specifications are matched to output sources in left-to- right order. Any excess output sources are ignored.

Description

This function writes output to the stream pointed to by stream under control of the wide-character string pointed to by format, which specifies how to convert subsequent arguments to output. If there are insufficient arguments for the format, the behavior is undefined. If the format is exhausted while arguments remain, the excess arguments are evaluated, but are otherwise ignored. The fwprintf function returns when it encounters the end of the format string.

The format argument is composed of zero or more directives that include:

Return Values
The number of wide characters written. 
Negative value  Indicates an error. The function sets errno to one of the following:

  • EILSEQ - Invalid character detected.

  • EINVAL - Insufficient arguments.

  • ENOMEM - Not enough memory available for conversion.

  • ERANGE - Floating-point calculations overflow.

  • EVMSERR - Nontranslatable VMS error. vaxc$errno contains the VMS 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:

  • EBADF - The file descriptor is not valid.

  • EIO - I/O error.

  • ENOSPC - No free space on the device containing the file.

  • ENXIO - Device does not exist.

  • EPIPE - Broken pipe.

  • ESPIPE - Illegal seek in a file opened for append.

  • EVMSERR - Nontranslatable VMS error. vaxc$errno contains the VMS error code. This indicates that an I/O error occurred for which there is no equivalent C error code.
 

Example

    The following example shows how to print a date and time in the form "Sunday, July 3, 10:02", followed by to five decimal places:

     #include <math.h>
     #include <stdio.h>
     #include <wchar.h>
     /* . . . */
     wchar_t *weekday, *month; /* pointers to wide-character strings */
     int day, hours, min;
     fwprintf(stdout, L"%ls, %ls %d, %.2d:%.2d\n",
        weekday, month, day, hour, min);
     fwprintf(stdout, L"pi = %.5f\n", 4 * atan(1.0));
    


Previous Page | Next Page | Table of Contents | Index