NOM¶
strverscmp - Comparaison de chaînes de version
SYNOPSIS¶
#define _GNU_SOURCE /* Consultez feature_test_macros(7) */
#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(1) 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(3)
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 renvoient ce que
strcmp(3)
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 inférieur, égal
ou supérieur à zéro si
s1 est
déterminée comme étant respectivement plus récente
que, égale à, ou postérieure à
s2.
Cette fonction est une extension GNU.
VOIR AUSSI¶
rename(1),
strcasecmp(3),
strcmp(3),
strcoll(3)
COLOPHON¶
Cette page fait partie de la publication 3.65 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Stéphan Rafin (2002), Alain Portal
<
http://manpagesfr.free.fr/> (2006). Nicolas François et
l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce
document en utilisant la commande «
man -L C
<section>
<page_de_man> ».