.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" .\" Modified 1993-03-29, David Metcalfe .\" Modified 1993-07-24, Rik Faith (faith@cs.unc.edu) .\" 2006-01-15, mtk, Added example program. .\" Modified 2012-03-08, Mark R. Bannister .\" and Ben Bacarisse .\" Document qsort_r() .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH qsort 3 "2 mai 2024" "Pagini de manual de Linux 6.8" .SH NUME qsort, qsort_r \- sortează o matrice .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBvoid qsort(void \fP\fIbase\fP\fB[.\fP\fIsize\fP\fB * .\fP\fInmemb\fP\fB], size_t \fP\fInmemb\fP\fB, size_t \fP\fIsize\fP\fB,\fP \fB int (*\fP\fIcompar\fP\fB)(const void [.\fP\fIsize\fP\fB], const void [.\fP\fIsize\fP\fB]));\fP \fBvoid qsort_r(void \fP\fIbase\fP\fB[.\fP\fIsize\fP\fB * .\fP\fInmemb\fP\fB], size_t \fP\fInmemb\fP\fB, size_t \fP\fIsize\fP\fB,\fP \fB int (*\fP\fIcompar\fP\fB)(const void [.\fP\fIsize\fP\fB], const void [.\fP\fIsize\fP\fB], void *),\fP \fB void *\fP\fIarg\fP\fB);\fP .fi .P .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .P \fBqsort_r\fP(): .nf _GNU_SOURCE .fi .SH DESCRIERE Funcția \fBqsort\fP() sortează o matrice cu \fInmemb\fP elemente de dimensiunea \fIsize\fP. Argumentul \fIbase\fP indică începutul matricei. .P Conținutul matricei este sortat în ordine crescătoare în conformitate cu o funcție de comparație indicată de \fIcompar\fP, care este apelată cu două argumente care indică obiectele care sunt comparate. .P Funcția de comparare trebuie să returneze un număr întreg mai mic, egal sau mai mare decât zero dacă primul argument este considerat a fi mai mic, egal sau mai mare decât al doilea. În cazul în care doi membri se compară ca fiind egali, ordinea lor în matricea sortată este nedefinită. .P Funcția \fBqsort_r\fP() este identică cu \fBqsort\fP(), cu excepția faptului că funcția de comparație \fIcompar\fP primește un al treilea argument. Un indicator este transmis funcției de comparare prin \fIarg\fP. În acest fel, funcția de comparare nu trebuie să utilizeze variabile globale pentru a trece prin argumente arbitrare și, prin urmare, este reentrantă și poate fi utilizată în siguranță în fire de execuție. .SH "VALOAREA RETURNATĂ" Funcțiile \fBqsort\fP() și \fBqsort_r\fP() nu returnează nicio valoare. .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 \fBqsort\fP(), \fBqsort_r\fP() T} Siguranța firelor MT\-Safe .TE .SH STANDARDE .TP \fBqsort\fP() C11, POSIX.1\-2008. .SH ISTORIC .TP \fBqsort\fP() POSIX.1\-2001, C89, SVr4, 4.3BSD. .TP \fBqsort_r\fP() glibc 2.8. .SH NOTE Pentru a compara șiruri de caractere C, funcția de comparare poate apela \fBstrcmp\fP(3), după cum se arată în exemplul de mai jos. .SH EXEMPLE Pentru un exemplu de utilizare, a se vedea exemplul de la \fBbsearch\fP(3). .P Un alt exemplu este următorul program, care sortează șirurile de caractere date în argumentele din linia de comandă: .P .\" SRC BEGIN (qsort.c) .EX #include #include #include \& static int cmpstringp(const void *p1, const void *p2) { /* Argumentele reale ale acestei funcții sunt " indicatori la indicatorii către char", dar argumentele strcmp(3) sunt "indicatori". către char", de aceea următoarele sunt convertite și dereferențiate. */ \& return strcmp(*(const char **) p1, *(const char **) p2); } \& int main(int argc, char *argv[]) { if (argc < 2) { fprintf(stderr, "Utilizare: %s <șir>...\en", argv[0]); exit(EXIT_FAILURE); } \& qsort(&argv[1], argc \- 1, sizeof(char *), cmpstringp); \& for (size_t j = 1; j < argc; j++) puts(argv[j]); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBsort\fP(1), \fBalphasort\fP(3), \fBstrcmp\fP(3), \fBversionsort\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 .