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  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.

Pagini de manual de Linux 6.03                  15 decembrie 2022                                  strverscmp(3)