Provided by: manpages-es-dev_4.13-4_all bug

NOMBRE

       strverscmp - compara dos cadenas de versión

SINOPSIS

       #define _GNU_SOURCE         /* Vea feature_test_macros(7) */
       #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(1)
       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(3) 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.

ATRIBUTOS

       Para obtener una explicación de los términos usados en esta sección, véase attributes(7).
       ┌──────────────┬────────────────────┬───────────────────┐
       │ InterfazAtributoValor             │
       ├──────────────┼────────────────────┼───────────────────┤
       │ strverscmp() │ Seguridad del hilo │ Multi-hilo seguro │
       └──────────────┴────────────────────┴───────────────────┘

CONFORME A

       Esta función es una extensión GNU.

EJEMPLOS

       The  program  below  can  be  used to demonstrate the behavior of strverscmp().  It uses strverscmp()  to
       compare the two strings given as its command-line arguments.  An example of its use is the following:

           $ ./a.out jan1 jan10
           jan1 < jan10

   Program source

       #define _GNU_SOURCE
       #include <string.h>
       #include <stdio.h>
       #include <stdlib.h>

       int
       main(int argc, char *argv[])
       {
           int res;

           if (argc != 3) {
               fprintf(stderr, "Usage: %s <string1> <string2>\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           res = strverscmp(argv[1], argv[2]);

           printf("%s %s %s\n", argv[1],
                   (res < 0) ? "<" : (res == 0) ? "==" : ">", argv[2]);

           exit(EXIT_SUCCESS);
       }

VÉASE TAMBIÉN

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

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
       proyecto,  información  sobre  cómo  informar  errores  y  la  última   versión   de   esta   página   en
       https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

       La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars <mpi79470@alu.um.es>

       Esta  traducción  es  documentación  libre;  lea  la GNU General Public License Version 3 o posterior con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si encuentra algún error en la traducción de esta página  del  manual,  envíe  un  correo  electrónico  a
       debian-l10n-spanish@lists.debian.org.

GNU                                               9 Junio 2020                                     STRVERSCMP(3)