Available in

(3) (3)/de (3)/es (3)/fr (3)/ja (3posix)

TOC

WPRINTF(3)              Manual del Programador de Linux             WPRINTF(3)



NOMBRE

       wprintf,  fwprintf,  swprintf,  vwprintf,  vfwprintf,  vswprintf - con‐
       versió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, ...);

       #include <stdarg.h>

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

DESCRIPCIÃN

       La familia de funciones wprintf es equivalente para caracteres anchos a
       la  familia de funciones printf. Realizan la salida con formato de car‐
       acteres anchos.

       Las funciones wprintf y  vwprintf  realizan  la  salida  de  caracteres
       anchos  a  stdout.  stdout  no  debe  estar  orientada  a bytes. Vea la
       función fwide 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 la
       función fwide 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,  vprintf, fprintf,
       vfprintf, sprintf y vsprintf, 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  y
              vsprintf  no. (Las funciones snprintf y vsnprintf toman un argu‐
              mento maxlen, pero en Linux no  devuelven  -1  ante  un  desbor‐
              damiento 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 con‐
              vierte a un carácter ancho, mediante una llamada a la  función
              btowc,  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 argu‐
              mento ‘‘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 con un
              estado  de  conversión  que comienza en el estado inicial antes
              del primer byte). Se escriben todos los caracteres anchos resul‐
              tantes  hasta  encontrar  (pero  sin incluir) un carácter ancho
              terminador nulo. 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, a menos que se pro‐
              porcione  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  fun‐
       ciones  swprintf  y  vswprintf.  Las  funciones devuelven -1 en caso de
       error.

CONFORME A

       ISO/ANSI C, UNIX98

VÃASE TAMBIÃN

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

OBSERVACIONES

       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 cat‐
       egorí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 libc de GNU representa los carac‐
       teres  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 ISO 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  interna‐
       cionalizada (por ejemplo, usando gettext o iconv, seguida de mbstowcs).



GNU                            20 noviembre 1999                    WPRINTF(3)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.