wprintf(3)

NOM
wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - Formater des chaînes de caractères larges

BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)

SYNOPSIS
#include <stdio.h>
#include <wchar.h>

int wprintf(const wchar_t *restrict format, ...);
int fwprintf(FILE *restrict stream,
             const wchar_t *restrict format, ...);
int swprintf(wchar_t wcs[restrict .maxlen], size_t maxlen,
             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(wchar_t wcs[restrict .maxlen], size_t maxlen,
             const wchar_t *restrict format, va_list args);

    Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

Pour toutes les fonctions ci-dessus :
"    _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE
        || _POSIX_C_SOURCE >= 200112L

DESCRIPTION
La famille de fonctions wprintf() est l'équivalent pour les caractères larges de la famille de fonctions printf(3). Elle réalise une mise en forme des caractères larges.

Les fonctions wprintf() et vwprintf() réalisent le traitement et la sortie de chaînes de caractères larges sur stdout. stdout ne doit pas être orienté octet (consultez fwide(3) pour plus d'informations).

Les fonctions fwprintf() et vfwprintf() réalisent la mise en forme de chaînes de caractères larges en vue d'une écriture dans le fichier flux. flux ne doit pas être orienté octet (consultez fwide(3) pour plus d'informations).

Les fonctions swprintf() et vswprintf() 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 maxlen caractères larges dans wcs.

Ces fonctions se comportent de la même manière que les fonctions printf(3), vprintf(3), fprintf(3), vfprintf(3), sprintf(3) et vsprintf(3), hormis les différences suivantes :

•   La chaîne format est une chaîne de caractères larges.

•   La sortie est faite de caractères larges, pas d'octets.

•   swprintf() et vswprintf() prennent un argument maxlen, contrairement à sprintf(3) et vsprintf(3) (snprintf(3) et vsnprintf(3) prennent un argument maxlen, mais ces fonctions ne renvoient pas -1 en cas de débordement mémoire sous Linux).

Le traitement des caractères de conversion c et s est différent :

c   Si aucun modificateur l n'est présent, l'argument int est converti en un caractère large par un appel à la fonction btowc(3) et le caractère large en résultant est écrit. Si un modificateur l est présent, l'argument wint_t (caractère large) est écrit.

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(3) 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 (L'\0'). 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 ('\0'), 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.

VALEUR RENVOYÉE
Ces fonctions renvoient le nombre de caractères larges écrits, non compris le caractère NULL final dans le cas des fonctions swprintf() et vswprintf(). Elles renvoient -1 en cas d'erreur.

ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur
wprintf(), fwprintf(), swprintf(), vwprintf(), vfwprintf(), vswprintf() | Sécurité des threads | MT-Safe locale

STANDARDS
C11, POSIX.1-2008.

HISTORIQUE
POSIX.1-2001, C99.

NOTES
Le comportement de wprintf() et autres dépend de la catégorie LC_CTYPE de la régionalisation utilisée.

If the format string contains non-ASCII wide characters, the program will work correctly only 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 glibc represents wide characters using their Unicode (ISO/IEC 10646) code point, but other platforms don't do this. Also, the use of 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(3) or iconv(3), followed by mbstowcs(3)).

VOIR AUSSI
fprintf(3), fputwc(3), fwide(3), printf(3), snprintf(3)

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Frédéric Hantrais <fhantrais@gmail.com> et Grégoire Scano <gregoire.scano@malloc.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.