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

NOMBRE

       strverscmp - compara dos cadenas de versión

SINOPSIS

       #define _GNU_SOURCE
       #include <string.h>

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

DESCRIPCIÓN

       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 opción -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   lexicográfico.   Esta  función  no  usa  la  categoría  de
       localización  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  función  es  lo  siguiente.   Si ambas cadenas son
       iguales, devuelve 0. En otro caso encuentra la posición entre dos bytes
       con  la  propiedad  de  que  antes  de  esta posición ambas cadenas son
       iguales, mientras que justamente después hay una diferencia.  Encuentra
       las  cadenas  de  dígitos  consecutivos  más  largas  que  contienen (o
       comienzan o terminan en) esta posición. Si una o  ambas  están  vacías,
       devuelve  lo  que strcmp hubiera devuelto (ordenamiento numérico de los
       valores de byte).  En otro  caso,  compara  ambas  cadenas  de  dígitos
       numéricamente,  donde  las  cadenas  de  dígitos con uno o más ceros al
       principio son interpretadas como si tuvieran un punto  decimal  delante
       (así  que  las  cadenas  de dígitos con más ceros al principio aparecen
       antes que aquellas cadenas de dígitos con menos  ceros  al  principio).
       Así, el ordenamiento es 000, 00, 01, 010, 09, 0, 1, 9, 10.

VALOR DEVUELTO

       La  función 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 función es una extensión de GNU.

VÉASE TAMBIÉN

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