Provided by: manpages-fr_1.67.0-1_all bug

NOM

       strverscmp - Comparaison de chaînes de version.

SYNOPSIS

       #define _GNU_SOURCE
       #include <string.h>

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

DESCRIPTION

       On  a souvent des fichiers jan1, jan2, ..., jan9, jan10, ...  et il est
       malvenu que ls les classe dans l’ordre jan1,  jan10,  ...,  jan2,  ...,
       jan9.   Afin  de  remédier à ceci, GNU a introduit l’option -v à ls(1),
       option implémentée en utilisant versionsort(3), qui  utilise  lui  même
       strverscmp.

       Ainsi,  la  tâche  de  strverscmp consiste à comparer deux chaînes et à
       déterminer le "bon" ordre, alors que strcmp détermine seulement l’ordre
       lexicographique.   Cette   fonction   n’utilise  pas  la  catégorie  de
       localisation LC_COLLATE, elle vise donc principalement  les  situations
       dans lesquelles les chaînes sont supposées être en ASCII.

       Cette  fonction  travaille  comme  détaillé  ci  dessous.   Si les deux
       chaînes sont égales, elle renvoie 0. Sinon, elle recherche une position
       entre  deux  octets ayant la propriété suivante : avant cette position,
       les deux chaînes  sont  égales,  alors  qu’immédiatement  après,  elles
       diffèrent.   Elle  détermine alors les plus longues chaînes de chiffres
       consécutifs contenant (ou  commençant  à,  ou  se  finissant  à)  cette
       position.  Si  l’une  des  chaînes ou bien les deux chaînes sont vides,
       alors elles renvoie ce que strcmp aurait renvoyé (Classement  numérique
       des  valeurs  d’octets).   Sinon,  elle  compare numériquement les deux
       chaînes de chiffres, où les chaînes de chiffres commençant  par  un  ou
       plusieurs  zéro sont interprétées comme si elles avaient une virgule en
       en-tête (de telle sorte  que  les  chaînes  de  chiffres  particulières
       commençant par davantage de zéro viennent avant les chaînes de chiffres
       avec moins de zéro en en-tête).  Ainsi, le classement est 000, 00,  01,
       010, 09, 0, 1, 9, 10.

VALEUR RENVOYÉE

       La  fonction  strverscmp() renvoie un entier plus petit que, égal à, ou
       plus grand que zéro si s1 est  déterminée  comme  étant  respectivement
       plus récente que, égale à, ou postérieure à s2.

CONFORMITÉ

       Cette fonction est une extension GNU.

VOIR AUSSI

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

TRADUCTION

       Stéphan Rafin, 2002.