:: RootR ::  Hosting Order Map Login   Secure Inter-Network Operations  
 
strverscmp(3) - phpMan

Command: man perldoc info search(apropos)  


STRVERSCMP(3)                       Linux Programmer's Manual                       STRVERSCMP(3)



NAME
       strverscmp - compare two version strings

SYNOPSIS
       #define _GNU_SOURCE         /* See feature_test_macros(7) */
       #include <string.h>

       int strverscmp(const char *s1, const char *s2);

DESCRIPTION
       Often  one  has  files  jan1,  jan2,  ..., jan9, jan10, ...  and it feels wrong when ls(1)
       orders them jan1, jan10, ..., jan2, ..., jan9.  In order to rectify this,  GNU  introduced
       the  -v  option  to  ls(1),  which  is  implemented using versionsort(3), which again uses
       strverscmp().

       Thus, the task of strverscmp() is to compare two strings and find the "right" order, while
       strcmp(3) finds only the lexicographic order.  This function does not use the locale cate‐
       gory LC_COLLATE, so is meant mostly for situations where the strings are expected to be in
       ASCII.

       What  this  function  does is the following.  If both strings are equal, return 0.  Other‐
       wise, 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 what strcmp(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 is 000, 00, 01, 010, 09, 0, 1, 9, 10.

RETURN VALUE
       The  strverscmp() function returns an integer less than, equal to, or greater than zero if
       s1 is found, respectively, to be earlier than, equal to, or later than s2.

CONFORMING TO
       This function is a GNU extension.

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

COLOPHON
       This page is part of release 3.74 of the Linux man-pages project.  A  description  of  the
       project,  information  about  reporting  bugs, and the latest version of this page, can be
       found at http://www.kernel.org/doc/man-pages/.



GNU                                         2001-12-19                              STRVERSCMP(3)


/man
rootr.net - man pages