.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2001 Andries Brouwer .\" and Copyright (C) 2016 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH strverscmp 3 "2 mai 2024" "Pagini de manual de Linux 6.8" .SH NUME strverscmp \- compară două șiruri de versiuni .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#define _GNU_SOURCE\fP /* Consultați feature_test_macros(7) */ \fB#include \fP .P \fBint strverscmp(const char *\fP\fIs1\fP\fB, const char *\fP\fIs2\fP\fB);\fP .fi .SH DESCRIERE .\" classical solution: "rename jan jan0 jan?" Adesea se dețin fișiere \fIian1\fP, \fIian2\fP, ..., \fIian9\fP, \fIian10\fP, ... și vi se pare ciudat când \fBls\fP(1) le ordonează \fIian1\fP, \fIian10\fP, ..., \fIian2\fP, \&..., \fIian9\fP. Pentru a corecta acest lucru, GNU a introdus opțiunea \fI\-v\fP în \fBls\fP(1), care este implementată cu ajutorul \fBversionsort\fP(3), care folosește din nou \fBstrverscmp\fP(). .P Astfel, sarcina lui \fBstrverscmp\fP() este de a compara două șiruri și de a găsi ordinea „corectă”, în timp ce \fBstrcmp\fP(3) găsește doar ordinea lexicografică. Această funcție nu utilizează categoria \fBLC_COLLATE\fP a configurației regionale, deci este destinată mai ales situațiilor în care se așteaptă ca șirurile de caractere să fie în ASCII. .P 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 \fBstrcmp\fP(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 \fI000\fP, \fI00\fP, \fI01\fP, \fI010\fP, \fI09\fP, \fI0\fP, \fI1\fP, \fI9\fP, \fI10\fP. .SH "VALOAREA RETURNATĂ" Funcția \fBstrverscmp\fP() returnează un număr întreg mai mic, egal sau mai mare decât zero dacă se constată că \fIs1\fP este mai înainte, egal sau ulterior lui \fIs2\fP. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBstrverscmp\fP() T} Siguranța firelor MT\-Safe .TE .\" FIXME: The marking is different from that in the glibc manual, .\" which has: .\" .\" strverscmp: MT-Safe locale .\" .\" glibc manual says strverscmp should have marking locale because it calls .\" isdigit() multiple times and isdigit() uses locale variable. .\" But isdigit() has two implementations. With different compiling conditions, .\" we may call isdigit() in macro, then strverscmp() should not have locale .\" problem. .SH STANDARDE GNU. .SH EXEMPLE Programul de mai jos poate fi utilizat pentru a demonstra comportamentul lui \fBstrverscmp\fP(). Acesta utilizează \fBstrverscmp\fP() pentru a compara cele două șiruri de caractere date ca argumente în linia de comandă. Un exemplu de utilizare a acestuia este următorul: .P .in +4n .EX $ \fB./a.out ian1 ian10\fP ian1 < ian10 .EE .in .SS "Sursa programului" .\" SRC BEGIN (strverscmp.c) \& .EX #define _GNU_SOURCE #include #include #include \& int main(int argc, char *argv[]) { int res; \& if (argc != 3) { fprintf(stderr, "Utilizare: %s \en", argv[0]); exit(EXIT_FAILURE); } \& res = strverscmp(argv[1], argv[2]); \& printf("%s %s %s\en", argv[1], (res < 0) ? "<" : (res == 0) ? "==" : ">", argv[2]); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBrename\fP(1), \fBstrcasecmp\fP(3), \fBstrcmp\fP(3), \fBstrcoll\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .