NOM
strverscmp - Comparaison de chaînes de version.
SYNOPSIS
#define _GNU_SOURCE
#include <string.h>
int strverscmp(const char *s1, const char *s2);
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.
CONFORMITÉ
Cette fonction est une extension GNU.
VOIR AUSSI
rename(1), strcasecmp(3), strcmp(3), strcoll(3), feature_test_macros(7)
COLOPHON
Cette page fait partie de la publication 3.23 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
Cette page de manuel a été traduite par Stéphan Rafin <stephan DOT
rafin AT laposte DOT net> en 2002, puis a été mise à jour par Alain
Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Nicolas François
<nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
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> ».