Provided by: manpages-es_1.55-10_all bug

NOMBRE

       strverscmp - compara dos cadenas de version

SINOPSIS

       #define _GNU_SOURCE
       #include <string.h>

       int strverscmp(const char *s1, const char *s2);

DESCRIPCI'ON

       A  menudo  se dispone de los ficheros jan1, jan2, ..., jan9, jan10, ...
       y parece incorrecto cuando ls los ordena como jan1, jan10,  ...,  jan2,
       ...,  jan9.   Para solucionar esto, GNU introdujo la opcion -v a ls(1),
       que es  implementada  usando  versionsort(3),  que  a  su  vez  utiliza
       strverscmp.

       De  esta  manera,  la  tarea  de  strverscmp  es comparar dos cadenas y
       encontrar el orden "correcto", mientras que strcmp solamente  encuentra
       el   orden   lexicografico.   Esta  funcion  no  usa  la  categoria  de
       localizacion  LC_COLLATE,  por  lo  que  se  utiliza  sobre   todo   en
       situaciones donde se espera que las cadenas esten en formato ASCII.

       Lo  que  hace  esta  funcion  es  lo  siguiente.   Si ambas cadenas son
       iguales, devuelve 0. En otro caso encuentra la posicion entre dos bytes
       con  la  propiedad  de  que  antes  de  esta posicion ambas cadenas son
       iguales, mientras que justamente despues hay una diferencia.  Encuentra
       las  cadenas  de  digitos  consecutivos  mas  largas  que  contienen (o
       comienzan o terminan en) esta posicion. Si una o  ambas  estan  vacias,
       devuelve  lo  que strcmp hubiera devuelto (ordenamiento numerico de los
       valores de byte).  En otro  caso,  compara  ambas  cadenas  de  digitos
       numericamente,  donde  las  cadenas  de  digitos con uno o mas ceros al
       principio son interpretadas como si tuvieran un punto  decimal  delante
       (asi  que  las  cadenas  de digitos con mas ceros al principio aparecen
       antes que aquellas cadenas de digitos con menos  ceros  al  principio).
       Asi, el ordenamiento es 000, 00, 01, 010, 09, 0, 1, 9, 10.

VALOR DEVUELTO

       La  funcion strverscmp() devuelve un entero menor que, igual a, o mayor
       que cero si s1 es, respectivamente, anterior, igual, o posterior a s2.

CONFORME A

       Esta funcion es una extension de GNU.

V'EASE TAMBI'EN

       rename(1), strcasecmp(3), strcmp(3), strcoll(3)