Provided by: manpages-es-dev_4.18.1-1_all bug

NOMBRE

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

BIBLIOTECA

       Biblioteca Estándar C (libc, -lc)

SINOPSIS

       #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);

   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      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.

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(),            │ Seguridad del hilo │ Configuración regional de multi-hilo seguro │
       │fwprintf(),           │                    │                                             │
       │swprintf(),           │                    │                                             │
       │vwprintf(),           │                    │                                             │
       │vfwprintf(),          │                    │                                             │
       │vswprintf()           │                    │                                             │
       └──────────────────────┴────────────────────┴─────────────────────────────────────────────┘

ESTÁNDARES

       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)

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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.