wprintf(3) Library Functions Manual wprintf(3) NOM wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - Formater des chaines de caracteres larges BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include #include int wprintf(const wchar_t *restrict format, ...); int fwprintf(FILE *restrict stream, const wchar_t *restrict format, ...); int swprintf(size_t n; wchar_t wcs[restrict n], size_t n, const wchar_t *restrict format, ...); int vwprintf(const wchar_t *restrict format, va_list args); int vfwprintf(FILE *restrict stream, const wchar_t *restrict format, va_list args); int vswprintf(size_t n; wchar_t wcs[restrict n], size_t n, const wchar_t *restrict format, va_list args); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : Pour toutes les fonctions ci-dessus : " _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE0 || _POSIX_C_SOURCE >= 200112L DESCRIPTION La famille de fonctions wprintf() est l'equivalent pour les caracteres larges de la famille de fonctions printf(3). Elle realise une mise en forme des caracteres larges. Les fonctions wprintf() et vwprintf() realisent le traitement et la sortie de chaines de caracteres larges sur stdout. stdout ne doit pas etre oriente octet (consultez fwide(3) pour plus d'informations). Les fonctions fwprintf() et vfwprintf() realisent la mise en forme de chaines de caracteres larges en vue d'une ecriture dans le fichier flux. flux ne doit pas etre oriente octet (consultez fwide(3) pour plus d'informations). 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 n wide characters at wcs. Ces fonctions se comportent de la meme maniere que les fonctions printf(3), vprintf(3), fprintf(3), vfprintf(3), sprintf(3) et vsprintf(3), hormis les differences suivantes : o La chaine format est une chaine de caracteres larges. o La sortie est faite de caracteres larges, pas d'octets. o swprintf() and vswprintf() take a n argument, sprintf(3) and vsprintf(3) do not. (snprintf(3) and vsnprintf(3) take a n argument, but these functions do not return -1 upon buffer overflow on Linux.) Le traitement des caracteres de conversion c et s est different : c Si aucun modificateur l n'est present, l'argument int est converti en un caractere large par un appel a la fonction btowc(3) et le caractere large en resultant est ecrit. Si un modificateur l est present, l'argument wint_t (caractere large) est ecrit. s Si aucun modificateur l n'est present, l'argument const char * est interprete comme un pointeur sur un tableau de caracteres (une chaine) contenant une sequence de caracteres multioctets commencant a l'etat initial de decalage . Les caracteres du tableau sont convertis en caracteres larges (un par un par l'appel de la fonction mbrtowc(3) avec un etat de conversion reinitialise avant le premier octet). La chaine de caracteres larges en resultant est ecrite jusqu'au caractere NULL final (L'\0') non compris. Si la precision est donnee, le nombre de caracteres larges ecrits ne la depassera pas. Notez bien que la precision determine le nombre de caracteres larges ecrits et non le nombre d'octets ou de positions d'ecran. Le tableau doit contenir un octet NULL final ('\0'), a moins que la precision donnee soit si petite que le nombre de caracteres larges convertis est atteint avant la fin du tableau. Si un modificateur l est present, l'argument const wchar_t * est interprete comme un pointeur sur un tableau de caracteres larges. Les caracteres larges du tableau sont ecrits jusqu'au caractere NULL final non compris. Si la precision est indiquee, le nombre de caracteres ecrits ne la depassera pas. Le tableau doit contenir un caractere NULL final a moins que la precision donnee soit inferieure ou egale au nombre de caracteres larges du tableau. VALEUR RENVOYEE The functions return the number of wide characters written, excluding the terminating null wide character in case of the functions swprintf() and vswprintf(). On error, -1 is returned, and errno is set to indicate the error. ERREURS See write(2) and putwc(3). In addition, the following error may occur: EOVERFLOW The value to be returned is greater than INT_MAX. The fwprintf() and wprintf() functions may fail additionally if: ENOMEM Insufficient storage space is available. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +--------------------------+--------------------------+----------------+ |Interface | Attribut | Valeur | +--------------------------+--------------------------+----------------+ |wprintf(), fwprintf(), | Securite des threads | MT-Safe locale | |swprintf(), vwprintf(), | | | |vfwprintf(), vswprintf() | | | +--------------------------+--------------------------+----------------+ NORMES C11, POSIX.1-2008. HISTORIQUE POSIX.1-2001, C99. NOTES The behavior of wprintf() et al. depends on the LC_CTYPE category of the current locale. Si la chaine format contient des caracteres larges non ASCII, le programme ne fonctionnera correctement que si la categorie LC_CTYPE de la regionalisation de l'execution est la meme que lors de la compilation. En effet, la representation de wchar_t depend de l'architecture et de la regionalisation. La glibc represente les caracteres larges a l'aide de leurs codes Unicode (ISO/IEC 10646), mais les autres architectures ne font pas de meme. De plus, l'utilisation des noms de caracteres universels de C99 (de la forme \unnnn) ne resout pas ce probleme. Aussi, la chaine format ne devrait etre constituee que de caracteres larges ASCII dans les programmes internationalises, ou alors elle doit etre construite a l'execution de maniere internationalisee (en utilisant par exemple gettext(3) ou iconv(3), suivi de mbstowcs(3)). VOIR AUSSI fprintf(3), fputwc(3), fwide(3), printf(3), snprintf(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Frederic Hantrais et Gregoire Scano Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.18 8 fevrier 2026 wprintf(3)