Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       strverscmp - compară două șiruri de versiuni

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #define _GNU_SOURCE         /* Consultați feature_test_macros(7) */
       #include <string.h>

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

DESCRIERE

       Adesea  se dețin fișiere ian1, ian2, ..., ian9, ian10, ... și vi se pare ciudat când ls(1)
       le ordonează ian1, ian10, ..., ian2, ..., ian9.  Pentru  a  corecta  acest  lucru,  GNU  a
       introdus  opțiunea  -v  în  ls(1), care este implementată cu ajutorul versionsort(3), care
       folosește din nou strverscmp().

       Astfel, sarcina lui strverscmp() este de a compara  două  șiruri  și  de  a  găsi  ordinea
       „corectă”,  în  timp  ce strcmp(3) găsește doar ordinea lexicografică.  Această funcție nu
       utilizează categoria LC_COLLATE a configurației regionale, deci este  destinată  mai  ales
       situațiilor în care se așteaptă ca șirurile de caractere să fie în ASCII.

       Această  funcție  face  următoarele.   Dacă  ambele  șiruri  de  caractere  sunt egale, se
       returnează 0.  În caz contrar, găsește poziția dintre doi octeți care are proprietatea  că
       înainte  de  ea  ambele  șiruri sunt egale, în timp ce imediat după ea există o diferență.
       Găsește cele mai mari șiruri de cifre consecutive care  conțin  (sau  care  încep  sau  se
       termină la) această poziție.  Dacă una sau ambele sunt goale, atunci se returnează ceea ce
       ar fi returnat strcmp(3) (ordonarea numerică a valorilor octeților).  În caz  contrar,  se
       compară ambele șiruri de cifre din punct de vedere numeric, unde șirurile de cifre cu unul
       sau mai multe zerouri de început sunt interpretate ca și cum ar avea  o  virgulă  în  față
       (astfel  încât, în special, șirurile de cifre cu mai multe zerouri de început vin înaintea
       șirurilor de cifre cu mai puține zerouri de început).  Astfel, ordinea este 000,  00,  01,
       010, 09, 0, 1, 9, 10.

VALOAREA RETURNATĂ

       Funcția strverscmp() returnează un număr întreg mai mic, egal sau mai mare decât zero dacă
       se constată că s1 este mai înainte, egal sau ulterior lui s2.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

       ┌───────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │InterfațăAtributValoare │
       ├───────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │strverscmp()                                               │ Siguranța firelor │ MT-Safe │
       └───────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       Această funcție este o extensie GNU.

EXEMPLE

       Programul de mai jos poate fi utilizat pentru a demonstra comportamentul lui strverscmp().
       Acesta  utilizează  strverscmp()  pentru  a  compara cele două șiruri de caractere date ca
       argumente în linia de comandă.  Un exemplu de utilizare a acestuia este următorul:

           $ ./a.out ian1 ian10
           ian1 < ian10

   Sursa programului

       #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, "Utilizare: %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);
       }

CONSULTAȚI ȘI

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

TRADUCERE

       Traducerea în limba  română  a  acestui  manual  a  fost  creată  de  Remus-Gabriel  Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  sau  o  versiune  ulterioară  cu
       privire la condiții privind drepturile de autor.  NU se asumă Nicio RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui  manual,  vă  rugăm să trimiteți un e-mail la
       ⟨translation-team-ro@lists.sourceforge.net⟩.