vfwprintf(3S)

vfwprintf: vfwprintf, vwprintf, vswprintf - wide-character formatted output of a stdarg argument list

As shipped in IRIX 6.5.22. Added in IRIX 6.5.19.

NAME
     vfwprintf: vfwprintf, vwprintf, vswprintf  - wide-character formatted
     output of a stdarg argument list

SYNOPSIS
     #include <stdio.h>
     #include <wchar.h>
     int vfwprintf(FILE *stream, const wchar_t *format, ...);
     int vwprintf(const wchar_t *format, ...);
     int vswprintf(wchar_t *s, size_t n, const wchar_t *format, ...);

DESCRIPTION
     vfwprintf places output on the named output stream.

     vwprintf places output on stdout.

     vswprintf places output, followed by a null wide-character in consecutive
     wide-characters starting at *s; no more than n wide-characters are
     written, including a terminating null wide-character, which is always
     added (unless n is zero).

     Each function returns the number of wide-characters transmitted (not
     including the terminating null character in the case of vswprintf), or a
     negative value if an output error was encountered.  If n or more wide
     characters were requested to be written vswprintf() returns a negative
     value.

     The vwprintf(), vfwprintf() and vswprintf() functions are the same as
     wprintf(), fwprintf() and swprintf() respectively, except that instead of
     being called with a variable number of arguments, they are called with an
     argument list as defined by <stdarg.h>.

     These functions do not invoke the va_end macro. However, as these
     functions do invoke the va_arg macro, the value of ap after the return is
     indeterminate.

EXAMPLES
     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);
          }

NOTES
     These functions are supported in n32 and 64 bit C Libraries for IRIX
     6.5.17 and later versions.

SEE ALSO
     fwprintf(3S), stdarg(5), stdio(3S), widec(3S).

DIAGNOSTICS
     vfwprintf, vwprintf, and vswprintf return the number of wide-characters
     transmitted (not counting the terminating null character for vswprintf),
     or return a negative value if an error was encountered.  If n or more
     wide characters were requested to be written vswprintf() returns a
     negative value.

     In addition, all forms of vfwprintf() may fail if:

     [EILSEQ]
          A wide-character code that does not correspond to a valid
          character has been detected.
     [EINVAL]
          There are insufficient arguments.

     In addition, vwprintf() and vfwprintf() may fail if:

     [ENOMEM]
          Insufficient storage space is available.