01 Rutinas Unicode

Allegro puede manipular y mostrar texto usando cualquier car�cter en el rango que va de 0 a 2^32-1 (aunque por ahora grabber s�lo puede crear fuentes usando car�cteres hasta 2^16-1). Puede escoger entre varios tipos de formatos de codificaci�n de texto, los cuales controlan la forma en la que las cadenas son almacenadas y c�mo Allegro interpreta las que usted le pase. Esta configuraci�n afecta a todos los aspectos del sistema: cada vez que observe una funci�n que devuelve un puntero a car�cter (char *) o que toma un puntero a car�cter como argumento, el texto utilizar� el formato que se le haya indicado a Allegro.

Por defecto, Allegro usa texto codificado en el formato UTF-8 (U_UTF8). Este es un formato de anchura variable donde los car�cteres pueden tener cualquier tama�o de 1 a 6 bytes. Lo bueno de este formato es que los car�cteres de 0 a 127 pueden ser almacenados directamente, o lo que es igual, significa que es compatible con c�digos ASCII de 7 bits ("Hola, Mundo!" es exactamente la misma cadena en ASCII que en UTF-8). Cualquier car�cter por encima del 128 como vocales acentuadas, el s�mbolo monetario ingl�s o car�cteres �rabes y chinos ser�n codificados como una secuencia de dos o m�s bytes con un valor en el rango 128-255. Esto permite que al mostrar la cadena no se obtengan car�cteres extra�os en ASCII que en realidad forman parte de la codificaci�n de un car�cter con diferente valor, lo que hace realmente f�cil manipular cadenas UTF-8.

Existen algunos editores de texto que entienden ficheros UTF-8, pero alternativamente, puede escribir sus cadenas en ASCII plano o en formato Unicode de 16 bit y luego utilizar el programa textconv (suministrado con Allegro) para convertir el texto a UTF-8.

Si prefiere usar otros formatos de texto, Allegro permite la utilizaci�n de formatos ASCII de 8 bits (U_ASCII) o Unicode de 16 bits (U_UNICODE). Adem�s puede programar sus propias funciones para manejar otros formatos de texto con Allegro (ser�a sencillo a�adir soporte para el formato UCS-4 de 32 bits, o el formato GB-code chino).

Tambi�n existe soporte limitado para p�ginas de c�digos alternativas de 8 bits a trav�s del modo U_ASCII_CP. Lo malo de este modo es que es muy lento y no deber�a utilizarse para aplicaciones serias. Sin embargo, puede utilizarse para convertir texto f�cilmente entre diferentes p�ginas de c�digos. Por defecto, el modo U_ASCII_CP es activado para convertir texto al formato ASCII de 7 bits, convirtiendo las vocales acentuadas en sus equivalente (por ejemplo, allegro_message() utiliza este modo para mostrar los mensajes en una consola DOS). Si necesita trabajar con otras p�ginas de c�digos, puede hacerlo pasando un mapeado de car�cteres a la funci�n set_ucodepage().

Tenga en cuenta que puede usar las rutinas Unicode antes de llamar install_allegro() o allegro_init(). Si quiere trabajar en un formato de texto distinto al UTF-8, lo mejor es que lo seleccione con set_uformat() antes de llamar estas funciones.


void set_uformat(int type);
Establece el formato de codificaci�n de texto a utilizar. Esta operaci�n afectar� a todos las funci�nes de Allegro que devuelvan un puntero a car�cter (char *) o acepten un puntero a car�cter como par�metro. El par�metro type debe ser uno de los siguientes:

      U_ASCII     - car�cteres ASCII de 8 bits de tama�o fijo
      U_ASCII_CP  - p�gina de c�digos alternativa de 8 bits (ver
                    set_ucodepage())
      U_UNICODE   - car�cteres Unicode de 16 bits de tama�o fijo
      U_UTF8      - car�cteres Unicode UTF-8 de tama�o variable
Aunque es posible cambiar el formato de texto en cualquier momento, no es una pr�ctica demasiado recomendable. Muchas cadenas (entre ellas los nombres de los drivers de hardware y algunas traducciones) son inicializadas en la llamada a allegro_init(), por lo tanto, si se cambia el formato de texto tras dicha llamada, las cadenas estar�n en un formato diferente al seleccionado y el sistema no funcionar� de forma apropiada. Como normal general, s�lo deber�a llamarse a set_uformat() una vez, antes de llamar a allegro_init(), y utilizar el formato de texto seleccionado durante toda la ejecuci�n de su programa.
Relacionado con: get_uformat, register_uformat, set_ucodepage, set_uformat, uconvert, ugetat, usetat, uinsert, uremove, allegro_init, ustrsize, ugetc, ugetx, usetc, uwidth, ucwidth, uisok, uoffset.
int get_uformat(void);
Devuelve el formato de codificaci�n de texto actualmente seleccionado.
Relacionado con: set_uformat.
void register_uformat(int type, int (*u_getc)(const char *s), int (*u_getx)(char **s), int (*u_setc)(char *s, int c), int (*u_width)(const char *s), int (*u_cwidth)(int c), int (*u_isok)(int c));
Instala un conjunto de funciones para el manejo de un nuevo formato de codificaci�n de car�cteres. El par�metro type identifica el nuevo formato, que deber�a ser una cadena de 4 car�cteres como las producidas por la macro AL_ID(). Esta cadena ser� la que se pase posteriormente a funciones como set_uformat() y uconvert(). Los punteros a funciones pasados como par�metros, son manejadores que implementan el acceso a los car�cteres de una cadena formateada con la nueva codificaci�n (vea m�s abajo para m�s detalles).
Relacionado con: set_uformat, uconvert, ugetc, ugetx, usetc, uwidth, ucwidth, uisok.
void set_ucodepage(const unsigned short *table, const unsigned short *extras);
Cuando se selecciona el modo U_ASCII_CP, los car�cteres de 8 bits son convertidos a sus equivalentes en Unicode a trav�s de un conjunto de tablas. Se puede usar esta funci�n para especificar un conjunto de tablas personalizadas que permitan la utilizaci�n de p�ginas de c�digos de 8 bits alternativas. El par�metro table apunta a un array de 256 enteros short que contienen el valor Unicode para cada car�cter en la p�gina de c�digos. El par�metro extras, si no es NULL, apunta a una lista de pares de valores que es utilizada para realizar la conversi�n inversa, es decir, reducir los valores Unicode a la representaci�n correcta dentro de la nueva p�gina de codigos. Cada par de valores consiste en un valor Unicode seguido por la forma de representaci�n correspondiente dentro de la p�gina de c�digos. La tabla debe finalizar con el valor cero en Unicode. Esta tabla permite que varios car�cteres Unicode puedan representarse mediante un solo valor en la p�gina de codigos (por ejemplo para reducir vocales acentuadas a ASCII de 7 bits).
Relacionado con: set_uformat.
int need_uconvert(const char *s, int type, int newtype);
Dado un puntero a una cadena, el tipo de la cadena y el tipo al que se desea convertir, esta funci�n indica si dicha conversi�n es necesaria. La conversi�n no es necesaria si type y newtype son el mismo tipo o son tipos equivalentes (por ejemplo ASCII y UTF-8 y la cadena contiene car�cteres menores que 128). Como valor para uno de los par�metros type, se puede pasar U_CURRENT que representa el tipo actualmente seleccionado.
Relacionado con: set_uformat, get_uformat, do_uconvert, uconvert.
int uconvert_size(const char *s, int type, int newtype);
Devuelve el n�mero de bytes que ser�n necesarios para almacenar la cadena especificada tras una conversi�n al nuevo tipo, incluyendo el car�cter terminador nulo. Los par�metros type pueden usar el valor U_CURRENT para indicar el tipo actualmente seleccionado.
Relacionado con: need_uconvert, do_uconvert.
void do_uconvert(const char *s, int type, char *buf, int newtype, int size);
Convierte la cadena especificada del tipo type al tipo newtype, guardando como mucho size bytes en el buffer buf. Los par�metros type pueden utilizar el valor U_CURRENT para indicar el tipo actualmente seleccionado.
Relacionado con: uconvert.
char *uconvert(const char *s, int type, char *buf, int newtype, int size);
Esta es una funci�n de alto nivel que sirve como ayuda para ejecutar do_uconvert(). Al igual que do_uconvert(), convierta la cadena especificada del tipo type al tipo newtype, guardando como mucho size bytes en el buffer buf. La ventaja que obtenemos a usar uconvert() es que comprueba los tipos antes de realizar la conversi�n, para asegurarse de que son tipos diferentes, no realizando conversi�n alguna si los tipos son iguales o equivalentes. Si la conversi�n fue realizada, devuelve un puntero a buf, en caso contrario, devuelve una copia de la cadena a convertir (s). Por lo tanto, debe usar el valor devuelto en lugar de asumir que la cadena ha sido movida a buf. Si buf es NULL, la cadena ser� convertida en un buffer est�tico interno. Sin embargo, deber�a tener cuidado al usar este comportamiento, ya que el buffer ser� sobreescrito cada vez que la rutina sea invocada, por lo que no espere que los datos persistan tras haber hecho llamadas a otras funciones de la biblioteca.
Relacionado con: set_uformat, need_uconvert, uconvert, uconvert_ascii, uconvert_toascii.
char *uconvert_ascii(const char *s, char buf[]);
Macro auxiliar para convertir cadenas desde ASCII al formato actual de codificaci�n. Se expande a uconvert(s, U_ASCII, buf, U_CURRENT, sizeof(buf)).
Relacionado con: uconvert.
char *uconvert_toascii(const char *s, char buf[]);
Macro auxiliar para convertir cadenas desde el formato actual de codificaci�n a ASCII. Se expande a uconvert(s, U_CURRENT, buf, U_ASCII, sizeof(buf)).
Relacionado con: uconvert.
extern char empty_string[];
No se puede fiar de que "" sea una cadena vac�a v�lida en todos los formatos de codificaci�n. Este b�ffer global contiene un n�mero de ceros consecutivos, as� que siempre ser� una cadena vac�a v�lida, sin tener importancia si el programa se est� ejecutando en modo ASCII, Unicode o UTF-8.


int ugetc(const char *s);
Funci�n auxiliar de bajo nivel para leer datos de texto en Unicode. Dado un puntero a una cadena en el formato de codificaci�n actual devuelve el siguiente caracter de la cadena.

Relacionado con: ugetx, usetc, uwidth, ucwidth, uisok.
int ugetx(char **s);
int ugetxc(const char **s);
Funci�n auxiliar de bajo nivel para leer datos de texto en Unicode. Dada la direcci�n de un puntero a un string en el formato de codificaci�n actual devuelve el siguiente caracter de la cadena y avanza el puntero al siguiente caracter.

ugetxc es para trabajar con datos char constantes puntero a puntero.

Relacionado con: ugetc, usetc, uwidth, ucwidth, uisok.
int usetc(char *s, int c);
Funci�n auxiliar de bajo nivel para escribir datos de texto en Unicode. Escribe el caracter especificado en la direcci�n dada usando el formato de codificaci�n actual y devuelve el n�mero de bytes escritos.
Relacionado con: ugetc, ugetx, uwidth, ucwidth, uisok.
int uwidth(const char *s);
Funci�n auxiliar de bajo nivel para comprobar datos de texto en Unicode. Devuelve el n�mero de bytes ocupados por el primer caracter de la cadena especificada en el formato de codificaci�n actual.
Relacionado con: uwidth_max, ugetc, ugetx, usetc, ucwidth, uisok.
int ucwidth(int c);
Funci�n auxiliar de bajo nivel para comprobar datos de texto en Unicode. Devuelve el n�mero de bytes que ocupar�a el caracter especificado en caso de codificarse en el formato actual.
Relacionado con: uwidth_max, ugetc, ugetx, usetc, uwidth, uisok.
int uisok(int c);
Funci�n auxiliar de bajo nivel para comprobar datos de texto en Unicode. Comprueba que el valor especificado puede ser codificado correctamente en en el formato actual.
Relacionado con: ugetc, ugetx, usetc, uwidth, ucwidth.
int uoffset(const char *s, int index);
Devuelve el desplazamiento en bytes desde el comienzo de la cadena hasta el caracter correspondiente al �ndice especificado. Si el �ndice es negativo, cuenta hac�a atr�s desde el final de la cadena, as� que un �ndice de -1 devolver� un desplazamiento al �ltimo caracter.
Relacionado con: ugetat, usetat, uinsert, uremove.
int ugetat(const char *s, int index);
Devuelve el valor del caracter de la cadena correspondiente al �ndice especificado. Un par�metro indice igual a 0 devolver� el primer caracter de la cadena. Si el �ndice es negativo, cuenta hacia atr�s desde el final de la cadena. As� pues un �ndice de -1 devolver� el ultimo caracter de la cadena.
Relacionado con: uoffset, usetat, uinsert, uremove.
int usetat(char *s, int index, int c);
Reemplaza el caracter del string con el �ndice especificado por el valor c, haciendo los ajustes necesarios debido a la anchura de la variable (ej: si c se codifica con una anchura diferente que el valor que hab�a antes en esa posici�n). Devuelve el n�mero de bytes que ha sido desplazada la parte derecha de la cadena. Si el �ndice es negativo cuenta hacia atr�s desde el final de la cadena.
Relacionado con: uoffset, ugetat, uinsert, uremove.
int uinsert(char *s, int index, int c);
Inserta el caracter c en la posici�n de la cadena especificada por index, desplazando el resto de los datos para hacer sitio. Devuelve el n�mero de bytes que ha desplazado la parte derecha. Si el �ndice es negativo cuenta hacia atras desde el final de la cadena.
Relacionado con: uoffset, ugetat, usetat, uremove.
int uremove(char *s, int index);
Borra el caracter que hay en la posici�n index de la cadena, desplazando el resto de los datos para llenar la posici�n vac�a. Devuelve el n�mero de bytes que se ha tenido que desplazar la parte derecha de la cadena, si index es negativo empieza a contar desde el final de la cadena
Relacionado con: uoffset, ugetat, usetat, uinsert.
int ustrsize(const char *s);
Devuelve el tama�o de la cadena especificada en bytes, sin incluir el caracter nulo finalizador de cadena.
Relacionado con: ustrsizez.
int ustrsizez(const char *s);
Devuelve el tama�o de la cadena especificada en bytes, incluyendo el caracter nulo finalizador de cadena.
Relacionado con: ustrsize.
int uwidth_max(int type);
Rutinas ayudantes de bajo nivel para trabajar con texto Unicode. Devuelven el mayor n�mero de bytes que un car�cter puede ocupar en el formato de codificaci�n especificado. Pase U_CURRENT para indicar el formato de codificaci�n actual.
Relacionado con: uwidth, ucwidth.
int utolower(int c);
Esta funci�n devuelve c, convirti�ndola a min�sculas si estaba en may�sculas.
Relacionado con: utoupper, ugetc, ugetx, usetc, uwidth, ucwidth, uisok.
int utoupper(int c);
Esta funci�n devuelve c, convirti�ndola a may�sculas si estaba en min�sculas.
Relacionado con: utolower, ugetc, ugetx, usetc, uwidth, ucwidth, uisok.
int uisspace(int c);
Devuelve distinto de cero si c es car�cter de espaciado, es decir, un retorno de carro, una nueva l�nea, p�gina, un tabulador, un tabulador vertical o un espacio.
Relacionado con: uisdigit, ugetc, usetc, uwidth, ucwidth, uisok.
int uisdigit(int c);
Devuelve distinto de cero si c es un d�gito.
Relacionado con: uisspace, ugetc, usetc, uwidth, ucwidth, uisok.
char *ustrdup(const char *src)
Esta funci�n copia la cadena src terminada en NULL en una nueva �rea de memoria reservada. La memoria devuelta por esta llamada debe ser liberada por el usuario. Devuelve NULL si no puede reservar espacio para la cadena duplicada.
Relacionado con: _ustrdup, uconvert, ustrsize, ustrsizez.
char *_ustrdup(const char *src, void* (*malloc_func) (size_t))
Hace lo mismo que ustrdup(), pero permite especificar al usuario su propia rutina para reservar memoria.
Relacionado con: ustrdup, uconvert, ustrsize, ustrsizez.
char *ustrcpy(char *dest, const char *src);
Esta funci�n copia src en dest (incluyendo el terminador de cadena NULL). El valor de retorno es el valor de dest.
Relacionado con: uconvert, ustrsize, ustrsizez, ustrncpy.
char *ustrzcpy(char *dest, int size, const char *src);
Esta funci�n copia src en dest (incluyendo el terminador de cadena NULL), cuya longitud en bytes es especificada por size y que est� garantizado que termine en car�cter NULL. El valor de retoron es el valor de dest.
Relacionado con: uconvert, ustrcpy, ustrzncpy.
char *ustrcat(char *dest, const char *src);
Esta funci�n concatena src al final de dest. El valor de retorno es el valor de dest.
Relacionado con: uconvert, ustrzcat, ustrncat.
char *ustrzcat(char *dest, int size, const char *src);
Esta funci�n concatena src al final de dest, cuya longitud en bytes es especificada por size y que est� garantizado que termine en car�cter NULL. El valor de retorno es el valor de dest.
Relacionado con: uconvert, ustrcat, ustrzncat.
int ustrlen(const char *s);
Esta funci�n devuelve el n�mero de car�cteres de s. Tenga en cuenta que esto no tiene que ser igual que el tama�o de la cadena en bytes.
Relacionado con: uconvert, ustrsize, ustrsizez.
int ustrcmp(const char *s1, const char *s2);
Esta funci�n compara s1 con s2. Devuelve cero si las cadenas son iguales, un n�mero positivo si s1 va detr�s de s2 en la secuencia ASCII apropiada, o negativo en caso contrario.
Relacionado con: uconvert, ustrsize, ustrsizez, ustrncmp, ustricmp.
char *ustrncpy(char *dest, const char *src, int n);
Esta funci�n es como ustrcpy() excepto que no copiar� m�s de n car�cteres de src a dest. Si src es menor en longitud que n car�cteres, se a�adir�n car�cteres NULL en dest hasta rellenar los n car�cteres especificados. Note que si src es mayor que n car�cteres, dest no terminar� en NULL. El valor de retorno es el valor de dest.
Relacionado con: uconvert, ustrcpy, ustrzncpy.
char *ustrzncpy(char *dest, int size, const char *src, int n);
Esta funci�n es como ustrzcpy() excepto que no copiar� m�s de n car�cteres de src a dest. Si src es menor en longitud que n car�cteres, se a�adir�n car�cteres NULL en dest hasta rellenar los n car�cteres especificados. Note que est� garantizado que dest acabe en car�cter NULL. El valor de retorno es el valor de dest.
Relacionado con: uconvert, ustrzcpy, ustrncpy.
char *ustrncat(char *dest, const char *src, int n);
Esta funci�n es como `strcat' con la excepci�n de que no se a�adir�n m�s de n bytes de src al final de dest. Si el car�cter terminador NULL es encontrado en src antes de haber escrito n car�cteres, el car�cter NULL ser� copiado, pero no se escribir�n m�s car�cteres. Si n car�cteres son copiados antes de encontrar el car�cter NULL, la funci�n a�adir� autom�ticamente el car�cter NULL a dest, por lo que se escribir�n n+1 car�cteres. El valor de retorno es dest.
Relacionado con: uconvert, ustrcat, ustrzncat.
char *ustrzncat(char *dest, int size, const char *src, int n);
Esta funci�n es como ustrszcat() con la excepci�n de que no se a�adir�n m�s de n car�cteres de src al final de dest. Si el car�cter terminador NULL es encontrado en src antes de haber escrito n car�cteres, el car�cter NULL ser� copiado, pero no se escribir�n m�s car�cteres. Note que est� garantizado que dest acabe en car�cter NULL. El valor de retorno es el valor de dest.
Relacionado con: uconvert, ustrzcat, ustrncat.
int ustrncmp(const char *s1, const char *s2, int n);
Esta funci�n compara hasta n car�cteres de s1 con s2. Devuelve cero si las cadenas son iguales, un n�mero positivo si s1 va detr�s de s2 en la secuencia ASCII apropiada, o negativo en caso contrario.
Relacionado con: uconvert, ustrsize, ustrsizez, ustrcmp, ustricmp.
int ustricmp(const char *s1, const char *s2);
Esta funci�n compara s1 con s2, ignorando las may�sculas.
Relacionado con: uconvert, ustrsize, ustrsizez, ustrcmp, ustrncmp.
char *ustrlwr(char *s);
Esta funci�n sustituye todas las letras may�sculas de s con min�sculas.
Relacionado con: uconvert, utolower, ustrupr.
char *ustrupr(char *s);
Esta funci�n sustituye todas las letras min�sculas de s con may�scylas.
Relacionado con: uconvert, utolower, ustrlwr.
char *ustrchr(const char *s, int c);
Esta funci�n devuelve un puntero a la primera ocurrencia de c en s, o NULL si s no contiene c. Tenga en cuenta que si c es NULL, esta funci�n devolver� un puntero al final de la cadena.
Relacionado con: uconvert, ustrrchr, ustrstr, ustrpbrk, ustrtok.
char *ustrrchr(const char *s, int c);
Esta funci�n devuelve un puntero a la �ltima ocurrencia de c en s, o NULL si s no contiene c.
Relacionado con: uconvert, ustrchr, ustrstr, ustrpbrk, ustrtok.
char *ustrstr(const char *s1, const char *s2);
Esta funci�n busca la primera ocurrencia de s2 en s1. Devuelve un puntero dentro de s1, o NULL si s2 no fue encontrada.
Relacionado con: uconvert, ustrchr, ustrrchr, ustrpbrk, ustrtok.
char *ustrpbrk(const char *s, const char *set);
Esta funci�n encuentra el primer car�cter de s que est� contenido en set. Devuelve un puntero a la primera ocurrencia, o NULL si no se encontr� nada.
Relacionado con: uconvert, ustrchr, ustrrchr, ustrstr, ustrtok.
char *ustrtok(char *s, const char *set);
Esta funci�n recupera palabras de s que est�n delimitadas por car�cteres de set. Para iniciar la b�squeda, pase la cadena que quiere analizar como s. Para el resto de las palabras, pase NULL en su lugar. Devuelve un puntero a la palabra, o NULL si no se encontr� nada. Aviso: dado que ustrtok altera la cadena que est� analizando, debe copiar siempre su cadena a un buffer temporal antes de analizarla. Adem�s, esta funci�n no es reentrante (ej: no puede analizar dos cadenas simult�neamente).
Relacionado con: uconvert, ustrchr, ustrrchr, ustrstr, ustrpbrk, ustrtok_r.
char *ustrtok_r(char *s, const char *set, char **last);
Versi�n reentrante de ustrtok. El �ltimo par�metro es usado para almacenar por d�nde iba el procesado de la cadena y debe ser un puntero a una variable char * reservada por el usuario que no debe ser modificada mientras se procesa la misma cadena.
Relacionado con: ustrtok.
double uatof(const char *s);
Convierte tanto como sea posible de la cadena a un n�mero equivalente en coma flotante de doble precisi�n. Esta funci�n es casi como `ustrtod(s, NULL)'. Devuelve un valor equivalente, o cero si la cadena no representa un n�mero.
Relacionado con: uconvert, ustrtol, ustrtod.
long ustrtol(const char *s, char **endp, int base);
Esta funci�n convierte la parte inicial de s a un entero con signo, el cual ser� devuelto como un valor de tipo `long int', haciendo que *endp apunte al primer car�cter no convertido, si endp no es un puntero nulo. Si el par�metro base es cero, la base es determinada buscando cosas como `0x', `0X', o `0' como parte inicial de la cadena, y ajusta la base a 16, 16 u 8 respectivamente si se encuentra algo. La base por defecto es 10 en el caso de que no se detecte ninguno de esos prefijos.
Relacionado con: uconvert, ustrtod, uatof.
double ustrtod(const char *s, char **endp);
Convierte en n�mero de coma flotante tantos car�cteres de s que parezcan un n�mero en coma flotante, y hace que *endp apunte al primer car�cter no usado, si endp no es un puntero nulo.
Relacionado con: uconvert, ustrtol, uatof.
const char *ustrerror(int err);
Esta funci�n devuelve una cadena que describe el c�digo de error `err', que normalmente vendr� de la variable `errno'. Devuelve un puntero a una cadena est�tica que no debe ser modificada o liberada. Si hace llamadas posteriores a ustrerror, la cadena puede ser sobreescrita.
Relacionado con: uconvert, allegro_error.
int usprintf(char *buf, const char *format, ...);
Esta funci�n escribe datos formateados en el buffer de salida. El car�cter NULL es escrito para marcar el final de la cadena. Devuelve el n�mero de car�cteres que fueron escritos, sin inclu�r el car�cter terminador nulo.
Relacionado con: uconvert, uszprintf, uvsprintf.
int uszprintf(char *buf, int size, const char *format, ...);
Esta funci�n escribe datos formateados en el buffer de salida, cuya longitud en bytes es especificada por size, y que est� garantizado que acabar� en car�cter NULL. Devuelve el n�mero de car�cteres que se hubiesen escrito sin contar la truncaci�n eventual (como con usprintf), y sin inclu�r el car�cter terminador NULL.
Relacionado con: uconvert, usprintf, uvszprintf.
int uvsprintf(char *buf, const char *format, va_list args);
Esto es como usprintf, pero usted pasa una lista variable de argumentos en vez de los propios argumentos.
Relacionado con: uconvert, usprintf, uvszprintf.
int uvszprintf(char *buf, int size, const char *format, va_list args);
Esto es como uszprintf(), pero usted pasa una lista variable de argumentos en vez de los propios argumentos.
Relacionado con: uconvert, uszprintf, uvsprintf.

Volver al Indice