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.44 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> ».