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)

GNU                                             19 diciembre 2001                                  STRVERSCMP(3)