Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
swprintf(3)
Edit
PageHistory
Diff
Info
LikePages
WPRINTF !!!WPRINTF NAME SYNOPSIS DESCRIPTION RETURN VALUE CONFORMING TO SEE ALSO NOTES ---- !!NAME wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - formatted wide character output conversion !!SYNOPSIS __#include __ ''format''__, ...); int fwprintf (FILE*__ ''stream''__, const wchar_t*__ ''format''__, ...); int swprintf (wchar_t*__ ''wcs''__, size_t__ ''maxlen''__, const wchar_t*__ ''format''__, ...); #include __ ''format''__, va_list__ ''args''__); int vfwprintf (FILE*__ ''stream''__, const wchar_t*__ ''format''__, va_list__ ''args''__); int vswprintf (wchar_t*__ ''wcs''__, size_t__ ''maxlen''__, const wchar_t*__ ''format''__, va_list__ ''args''__); __ !!DESCRIPTION The __wprintf__ family of functions is the wide-character equivalent of the __printf__ family of functions. It performs formatted output of wide characters. The __wprintf__ and __vwprintf__ functions perform wide character output to __stdout__. __stdout__ must not be byte oriented; see function __fwide__ for more information. The __fwprintf__ and __vfwprintf__ functions perform wide character output to ''stream''. ''stream'' must not be byte oriented; see function __fwide__ for more information. The __swprintf__ and __vswprintf__ functions perform wide character output to an array of wide characters. The programmer must ensure that there is room for at least ''maxlen'' wide characters at ''wcs''. These functions are like the __printf__, __vprintf__, __fprintf__, __vfprintf__, __sprintf__, __vsprintf__ functions except for the following differences: The ''format'' string is a wide character string. The output consists of wide characters, not bytes. __swprintf__ and __vswprintf__ take a ''maxlen'' argument, __sprintf__ and __vsprintf__ do not. (__snprintf__ and __vsnprintf__ take a ''maxlen'' argument, but these functions do not return -1 upon buffer overflow on Linux.) The treatment of the conversion characters __c__ and __s__ is different: __c__ If no __l__ modifier is present, the ''int'' argument is converted to a wide character by a call to the __btowc__ function, and the resulting wide character is written. If an __l__ modifier is present, the ''wint_t'' (wide character) argument is written. __s__ If no __l__ modifier is present: The ``''const char *'''' argument is expected to be a pointer to an array of character type (pointer to a string) containing a multibyte character sequence beginning in the initial shift state. Characters from the array are converted to wide characters (each by a call to the __mbrtowc__ function with a conversion state starting in the initial state before the first byte). The resulting wide characters are written up to (but not including) the terminating null wide character. If a precision is specified, no more wide characters than the number specified are written. Note that the precision determines the number of ''wide characters'' written, not the number of ''bytes'' or ''screen positions''. The array must contain a terminating null byte, unless a precision is given and it is so small that the number of converted wide characters reaches it before the end of the array is reached. -- If an __l__ modifier is present: The ``''const wchar_t *'''' argument is expected to be a pointer to an array of wide characters. Wide characters from the array are written up to (but not including) a terminating null wide character. If a precision is specified, no more than the number specified are written. The array must contain a terminating null wide character, unless a precision is given and it is smaller than or equal to the number of wide characters in the array. !!RETURN VALUE The functions return the number of wide characters written, excluding the terminating null wide character in case of the functions __swprintf__ and __vswprintf__. They return -1 when an error occurs. !!CONFORMING TO ISO/ANSI C, UNIX98 !!SEE ALSO printf(3), fprintf(3), snprintf(3), fputwc(3), fwide(3), wscanf(3) !!NOTES The behaviour of __wprintf__ et al. depends on the LC_CTYPE category of the current locale. If the ''format'' string contains non-ASCII wide characters, the program will only work correctly if the LC_CTYPE category of the current locale at run time is the same as the LC_CTYPE category of the current locale at compile time. This is because the __wchar_t__ representation is platform and locale dependent. (The GNU libc represents wide characters using their Unicode (ISO-10646) code point, but other platforms don't do this. Also, the use of ISO C99 universal character names of the form unnnn does not solve this problem.) Therefore, in internationalized programs, the ''format'' string should consist of ASCII wide characters only, or should be constructed at run time in an internationalized way (e.g. using __gettext__ or __iconv__, followed by __mbstowcs__). ----
One page links to
swprintf(3)
:
Man3s
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.