Provided by: manpages-es_1.55-10_all 

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)