strverscmp(3) Library Functions Manual strverscmp(3) NOM strverscmp - Comparer deux chaines versionnees BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #define _GNU_SOURCE /* Consultez feature_test_macros(7) */ #include int strverscmp(const char *s1, const char *s2); DESCRIPTION For a dataset like jan1, jan2, ..., jan9, jan10, ... sorting it lexicographically yields jan1, jan10, ..., jan2, ..., jan9. The task of strverscmp() is to compare two strings yielding the former order, while strcmp(3) finds only the lexicographic order. This function does not use the locale category LC_COLLATE, so is meant mostly for situations where the strings are expected to be in ASCII. This is different from the ordering produced by sort(1) -V. Cette fonction travaille comme suit : si les deux chaines sont egales, elle renvoie 0. Sinon, elle recherche une position entre deux octets ayant la propriete suivante : avant cette position, les deux chaines sont egales, alors qu'immediatement apres, elles different. Elle determine alors les plus longues chaines de chiffres consecutifs contenant (ou commencant ou se finissant a) cette position. Si l'une des chaines ou bien les deux chaines sont vides, alors elle renvoie ce que strcmp(3) aurait renvoye (classement numerique des valeurs d'octets). Sinon, elle compare numeriquement les deux chaines de chiffres, ou les chaines de chiffres commencant par un ou plusieurs zeros sont interpretees comme si elles avaient un separateur decimal en en-tete (de telle sorte que notamment les chaines de chiffres commencant par davantage de zeros viennent avant les chaines de chiffres avec moins de zeros en en-tete). Ainsi, le classement est 000, 00, 01, 010, 09, 0, 1, 9, 10. VALEUR RENVOYEE La fonction strverscmp() renvoie un entier inferieur, egal ou superieur a zero si s1 est determinee comme etant respectivement plus recente, egale a ou posterieure a s2. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |strverscmp() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ NORMES GNU. EXEMPLES Le programme suivant presente le fonctionnement de strverscmp(). Il utilise strverscmp() pour comparer deux chaines de caracteres fournies sur la ligne de commande. Voici un exemple de son utilisation : $ ./a.out jan1 jan10; jan1 < jan10 Source du programme #define _GNU_SOURCE #include #include #include int main(int argc, char *argv[]) { int res; if (argc != 3) { fprintf(stderr, "Usage: %s \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); } VOIR AUSSI rename(1), strcasecmp(3), strcmp(3), strcoll(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Frederic Hantrais , Gregoire Scano et Lucien Gentis Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.18 8 fevrier 2026 strverscmp(3)