Provided by: manpages-es-dev_4.13-4_all bug

NOMBRE

       wprintf,  fwprintf,  swprintf,  vwprintf,  vfwprintf,  vswprintf - conversión con formato de la salida de
       caracteres anchos

SINOPSIS

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

       int wprintf(const wchar_t *format, ...);
       int fwprintf(FILE *stream, const wchar_t *format, ...);
       int swprintf(wchar_t *wcs, size_t maxlen,
                    const wchar_t *format, ...);

       int vwprintf(const wchar_t *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);

   Requisitos de Macros de Prueba de Características para glibc (véase feature_test_macros(7)):

       A continuación se muestran todas las funciones:
           _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE ||
           _POSIX_C_SOURCE >= 200112L

DESCRIPCIÓN

       La familia de funciones wprintf() es equivalente  para  caracteres  anchos  a  la  familia  de  funciones
       printf(3). Realizan la salida con formato de caracteres anchos.

       Las  funciones  wprintf()  y  vwprintf() realizan la salida de caracteres anchos a stdout. stdout no debe
       estar orientada a bytes. Vea fwide(3) para más información.

       Las funciones fwprintf() y vfwprintf() realizan la salida de caracteres anchos a stream. stream  no  debe
       estar orientado a bytes. Vea fwide(3) para más información.

       Las  funciones  swprintf() y vswprintf() realizan la salida de caracteres anchos a un array de caracteres
       anchos. El programador debe garantizar  que  hay  espacio  suficiente  en  wcs  para,  al  menos,  maxlen
       caracteres anchos.

       Estas  funciones  son  como  las  funciones  printf(3), vprintf(3), fprintf(3), vfprintf(3), sprintf(3) y
       vsprintf(3), salvo por las siguientes diferencias:

             La cadena format es una cadena de caracteres anchos.

             La salida está formada por caracteres anchos, no por bytes.

             swprintf() y vswprintf() toman un argumento maxlen, sprintf(3) y vsprintf(3)  no.  (Las  funciones
              snprintf(3)  y  vsnprintf(3)  toman  un  argumento  maxlen,  pero en Linux no devuelven -1 ante un
              desbordamiento de buffer.)

       El tratamiento de los caracteres de conversión c y s es distinto:

       c      Si no está presente un modificador l, el argumento int se convierte a un carácter ancho,  mediante
              una llamada a la función btowc(3), y se escribe el carácter ancho resultante.  Si está presente un
              modificador l, se escribe el argumento (carácter ancho)  wint_t.

       s      Si  no está presente un modificador l: se espera que el argumento const char * sea un puntero a un
              array de tipo carácter (puntero a una cadena) que contenga una secuencia de  caracteres  multibyte
              que  comience en el estado inicial de cambios. Los caracteres del array se convierten a caracteres
              anchos (cada uno mediante una llama a la función  mbrtowc(3)  con  un  estado  de  conversión  que
              comienza  en  el  estado  inicial  antes del primer byte). Se escriben todos los caracteres anchos
              resultantes hasta encontrar (pero sin incluir) un carácter ancho terminador nulo (L' \0').  Si  se
              especifica  una  precisión,  no  se  escriben  más caracteres anchos del número especificado. Dese
              cuenta que la precisión determina el número de caracteres anchos escritos, no el número de bytes o
              posiciones de pantalla.  El array debe contener un byte terminador nulo (' \0'), a  menos  que  se
              proporcione  una  precisión y ésta sea tan pequeña que el número de caracteres anchos obtenidos la
              iguale antes de que se llegue al final del array. (Si está presente un modificador  l:  se  espera
              que el argumento const wchar_t * sea un puntero a un array de caracteres anchos. Se escriben todos
              los  caracteres  anchos  del array hasta encontrar (pero sin incluir) un carácter ancho terminador
              nulo. Si se especifica una presición, no se escriben más caracteres del  número  especificado.  El
              array  debe contener un carácter ancho terminador nulo, a menos que se de una precisión y ésta sea
              más pequeña o igual que el número de caracteres anchos en el array.

VALOR DEVUELTO

       Las funciones devuelven el número de caracteres anchos escritos, excluyendo el carácter ancho  terminador
       nulo en el caso de las funciones swprintf() y vswprintf(). Las funciones devuelven -1 en caso de error.

ATRIBUTOS

       Para obtener una explicación de los términos usados en esta sección, véase attributes(7).
       ┌──────────────────────────┬────────────────────┬─────────────────────────────────────────────┐
       │ InterfazAtributoValor                                       │
       ├──────────────────────────┼────────────────────┼─────────────────────────────────────────────┤
       │ wprintf(), fwprintf(),   │ Seguridad del hilo │ Configuración regional de multi-hilo seguro │
       │ swprintf(), vwprintf(),  │                    │                                             │
       │ vfwprintf(), vswprintf() │                    │                                             │
       └──────────────────────────┴────────────────────┴─────────────────────────────────────────────┘

CONFORME A

       POSIX.1-2001, POSIX.1-2008, C99.

NOTAS

       El comportamiento de wprintf() y compañía depende de la categoría LC_CTYPE de la localización actual.

       Si  la  cadena  format  contiene  caracteres  anchos  que  no  son  ASCII,  el  programa  sólo funcionará
       correctamente si la categoría LC_CTYPE de la localización actual en tiempo de ejecución es la  misma  que
       la  categoría  LC_CTYPE  de  la  localización  actual  en  tiempo  de  compilación. Esto es así porque la
       representación wchar_t es dependiente de la plataforma y de la localización.  (La  glibc  representa  los
       caracteres  anchos  usando sus puntos de código Unicode (ISO-10646) pero otras plataformas no hacen esto.
       Tampoco el uso de nombres universales de caractares, según la norma C99, de  la  forma  \unnnn  soluciona
       este  problema.) Por tanto, en programas internacionalizados, la cadena format debería estar formada sólo
       por caracteres anchos ASCII, o debería construirse en tiempo de ejecución de una forma internacionalizada
       (por ejemplo, usando gettext(3) o iconv(3), seguida de mbstowcs(3)).

VÉASE TAMBIÉN

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

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
       proyecto,  información  sobre  cómo  informar  errores  y  la  última   versión   de   esta   página   en
       https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

       La traducción al español de esta página del manual fue creada por Juan Piernas <piernas@ditec.um.es>

       Esta  traducción  es  documentación  libre;  lea  la GNU General Public License Version 3 o posterior con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si encuentra algún error en la traducción de esta página  del  manual,  envíe  un  correo  electrónico  a
       debian-l10n-spanish@lists.debian.org.

GNU                                               6 Marzo 2019                                        WPRINTF(3)