Provided by: manpages-es_1.55-10_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)