Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


strverscmp(3) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ATTRIBUTES |STANDARDS |EXAMPLES |SEE ALSO |COLOPHON

strverscmp(3)            Library Functions Manualstrverscmp(3)

NAME        top

       strverscmp - compare two version strings

LIBRARY        top

       Standard C library (libc,-lc)

SYNOPSIS        top

#define _GNU_SOURCE/* See feature_test_macros(7) */#include <string.h>int strverscmp(const char *s1, const char *s2);

DESCRIPTION        top

       For a dataset likejan1,jan2, ...,jan9,jan10, ...  sorting it       lexicographically yieldsjan1,jan10, ...,jan2, ...,jan9.  The       task ofstrverscmp() is to compare two strings yielding the former       order, whilestrcmp(3) finds only the lexicographic order.  This       function does not use the locale categoryLC_COLLATE, so is meant       mostly for situations where the strings are expected to be in       ASCII.  This is different from the ordering produced bysort(1)-V.       What this function does is the following.  If both strings are       equal, return 0.  Otherwise, find the position between two bytes       with the property that before it both strings are equal, while       directly after it there is a difference.  Find the largest       consecutive digit strings containing (or starting at, or ending       at) this position.  If one or both of these is empty, then return       whatstrcmp(3) would have returned (numerical ordering of byte       values).  Otherwise, compare both digit strings numerically, where       digit strings with one or more leading zeros are interpreted as if       they have a decimal point in front (so that in particular digit       strings with more leading zeros come before digit strings with       fewer leading zeros).  Thus, the ordering is000,00,01,010,09,0,1,9,10.

RETURN VALUE        top

       Thestrverscmp() function returns an integer less than, equal to,       or greater than zero ifs1 is found, respectively, to be earlier       than, equal to, or later thans2.

ATTRIBUTES        top

       For an explanation of the terms used in this section, seeattributes(7).       ┌──────────────────────────────────────┬───────────────┬─────────┐       │InterfaceAttributeValue│       ├──────────────────────────────────────┼───────────────┼─────────┤       │strverscmp()                         │ Thread safety │ MT-Safe │       └──────────────────────────────────────┴───────────────┴─────────┘

STANDARDS        top

       GNU.

EXAMPLES        top

       The program below can be used to demonstrate the behavior ofstrverscmp().  It usesstrverscmp() to compare the two strings       given as its command-line arguments.  An example of its use is the       following:           $./a.out jan1 jan10;           jan1 < jan10Program source       #define _GNU_SOURCE       #include <stdio.h>       #include <stdlib.h>       #include <string.h>       int       main(int argc, char *argv[])       {           int res;           if (argc != 3) {               fprintf(stderr, "Usage: %s <string1> <string2>\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);       }

SEE ALSO        top

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

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-05-17strverscmp(3)

Pages that refer to this page:scandir(3)strcmp(3)mount(8)swapon(8)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp