.\" Copyright (c) Bruno Haible .\" .\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA) .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" %%%LICENSE_END .\" .\" References consulted: .\" GNU glibc-2 source code and manual .\" Dinkumware C library reference http://www.dinkumware.com/ .\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html .\" ISO/IEC 9899:1999 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH WPRINTF 3 "19 mars 2014" GNU "Manuel du programmeur Linux" .SH NOM wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- Formater des chaînes de caractères larges .SH SYNOPSIS .nf \fB#include \fP \fB#include \fP .sp \fBint wprintf(const wchar_t *\fP\fIformat\fP\fB, ...);\fP \fBint fwprintf(FILE *\fP\fIstream\fP\fB, const wchar_t *\fP\fIformat\fP\fB, ...);\fP \fBint swprintf(wchar_t *\fP\fIwcs\fP\fB, size_t \fP\fImaxlen\fP\fB,\fP \fB const wchar_t *\fP\fIformat\fP\fB, ...);\fP .sp \fBint vwprintf(const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP \fBint vfwprintf(FILE *\fP\fIstream\fP\fB, const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP \fBint vswprintf(wchar_t *\fP\fIwcs\fP\fB, size_t \fP\fImaxlen\fP\fB,\fP \fB const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP .fi .sp .in -4n Exigences de macros de test de fonctionnalités pour la glibc (consultez \fBfeature_test_macros\fP(7))\ : .in .sp .ad l Pour toutes les fonctions ci\-dessus\ : .RS 4 .\" .BR wprintf (), .\" .BR fwprintf (), .\" .BR swprintf (), .\" .BR vwprintf (), .\" .BR vfwprintf (), .\" .BR vswprintf (): _XOPEN_SOURCE\ >=\ 500 || _ISOC99_SOURCE || .br _POSIX_C_SOURCE\ >=\ 200112L; .br ou \fIcc\ \-std=c99\fP .RE .ad .SH DESCRIPTION La famille de fonctions \fBwprintf\fP() est l'équivalent pour les caractères larges de la famille de fonctions \fBprintf\fP(3). Elle réalise une mise en forme des caractères larges. .PP Les fonctions \fBwprintf\fP() et \fBvwprintf\fP() réalisent le traitement et la sortie de chaînes de caractères larges sur \fIstdout\fP. \fIstdout\fP ne doit pas être orienté caractères (consultez \fBfwide\fP(3) pour plus d'informations). .PP Les fonctions \fBfwprintf\fP() et \fBvfwprintf\fP() réalisent la mise en forme de chaînes de caractères larges en vue d'une écriture dans le fichier \fIstream\fP. \fIstream\fP ne doit pas être orienté caractères (consultez \fBfwide\fP(3) pour plus d'informations). .PP Les fonctions \fBswprintf\fP() et \fBvswprintf\fP() réalisent la mise en forme d'une chaîne de caractères larges avant de l'écrire dans un tableau de caractères larges. Le programmeur doit s'assurer qu'il y ait assez de place pour au moins \fImaxlen\fP caractères larges dans \fIwcs\fP. .PP Ces fonctions se comportent de la même manière que les fonctions \fBprintf\fP(3), \fBvprintf\fP(3), \fBfprintf\fP(3), \fBvfprintf\fP(3), \fBsprintf\fP(3) et \fBvsprintf\fP(3), hormis les différences suivantes\ : .TP \fB\(bu\fP La chaîne \fIformat\fP est composée de caractères larges. .TP \fB\(bu\fP La sortie est faite de caractères larges, pas d'octets. .TP \fB\(bu\fP \fBswprintf\fP() et \fBvswprintf\fP() prennent un argument \fImaxlen\fP, contrairement à \fBsprintf\fP(3) et \fBvsprintf\fP(3) (\fBsnprintf\fP(3) et \fBvsnprintf\fP(3) prennent un argument \fImaxlen\fP, mais ces fonctions ne renvoient pas \-1 en cas de débordement mémoire sous Linux). .PP Le traitement des caractères de conversion \fBc\fP et \fBs\fP est différent\ : .TP \fBc\fP Si aucun modificateur \fBl\fP n'est présent, l'argument \fIint\fP est converti en un caractère large par un appel à la fonction \fBbtowc\fP(3) et le caractère large en résultant est écrit. Si un modificateur \fBl\fP est présent, l'argument \fIwint_t\fP (caractère large) est écrit. .TP \fBs\fP Si aucun modificateur \fBl\fP n'est présent, l'argument \fIconst\ char\ *\fP est interprété comme un pointeur sur un tableau de caractères (une chaîne) contenant une séquence de caractères larges commençant à l'état initial. Les caractères du tableau sont convertis en caractères larges (un par un par l'appel de la fonction \fBmbrtowc\fP(3) avec un état de conversion réinitialisé avant le premier octet). La chaîne de caractères larges en résultant est écrite jusqu'au dernier caractère (non compris), le caractère nul final\ (L\(aq\e0\(aq)). Si la taille est donnée, le nombre de caractères larges écrits ne la dépassera pas. Notez bien que la taille détermine le nombre de \fIcaractères larges\fP écrits et non le nombre d'\fIoctets\fP ou de \fIpositions d'écran\fP. Le tableau doit contenir un octet nul final (L\(aq\e0\(aq), à moins que la taille donnée soit si petite que le nombre de caractères larges est atteint avant la fin du tableau. Si un modificateur \fBl\fP est présent\ : l'argument \fIconst\ wchar_t\ *\fP est interprété comme un pointeur sur un tableau de caractères larges. Les caractères larges du tableau sont écrits jusqu'au dernier (non compris le caractère nul final). Si la taille est indiquée, le nombre de caractères écrits ne la dépassera pas. Le tableau doit contenir un caractère nul final à moins que la taille donnée soit inférieure ou égale au nombre de caractères larges du tableau. .SH "VALEUR RENVOYÉE" Ces fonctions renvoient le nombre de caractères larges écrits, non compris le caractère nul final dans le cas des fonctions \fBswprintf\fP() et \fBvswprintf\fP(). Elles renvoient \-1 en cas d'erreur. .SH CONFORMITÉ C99. .SH NOTES Le comportement de \fBwprintf\fP() et compagnie dépend de la catégorie \fBLC_CTYPE\fP de la locale utilisée. .PP Si la chaîne \fIformat\fP contient des caractères larges non ASCII, le programme ne fonctionnera correctement que si la catégorie \fBLC_CTYPE\fP de la localisation lors de l'exécution est la même que lors de la compilation. En effet, la représentation de \fIwchar_t\fP dépend de l'architecture et de la localisation. La glibc représente les caractères larges à l'aide de leurs codes Unicode (ISO\-10646), mais les autres architectures ne font pas de même. De plus, l'utilisation des noms de caractères universels de C99 (de la forme \eunnnn) ne résout pas ce problème. Aussi, la chaîne \fIformat\fP ne devrait être constituée que de caractères larges dans les programmes internationalisés, ou alors elle doit être construite à l'exécution de manière internationalisée (en utilisant par exemple \fBgettext\fP(3) ou \fBiconv\fP(3), suivi de \fBmbstowcs\fP(3)). .SH "VOIR AUSSI" .\" .BR wscanf (3) \fBfprintf\fP(3), \fBfputwc\fP(3), \fBfwide\fP(3), \fBprintf\fP(3), \fBsnprintf\fP(3) .SH COLOPHON Cette page fait partie de la publication 3.65 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse \%http://www.kernel.org/doc/man\-pages/. .SH TRADUCTION Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a par l'équipe de traduction francophone au sein du projet perkamon . .PP Thierry Vignaud (2002), Alain Portal \ (2006). Nicolas François et l'équipe francophone de traduction de Debian\ (2006-2009). .PP Veuillez signaler toute erreur de traduction en écrivant à ou par un rapport de bogue sur le paquet \fBmanpages\-fr\fR. .PP Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande «\ \fBman\ \-L C\fR \fI
\fR\ \fI\fR\ ».