memcmp(3) Library Functions Manual memcmp(3)

memcmp - compară zonele de memorie

Biblioteca C standard (libc, -lc)

#include <string.h>
int memcmp(const void s1[.n], const void s2[.n], size_t n);

Funcția memcmp() compară primii n octeți (fiecare interpretat ca unsigned char) din zonele de memorie s1 și s2.

Funcția memcmp() returnează un număr întreg mai mic, egal sau mai mare decât zero dacă se constată că primii n octeți din s1 sunt mai mici, se potrivesc sau sunt mai mari decât primii n octeți din s2.

Pentru o valoare de returnare diferită de zero, semnul este determinat de semnul diferenței dintre prima pereche de octeți (interpretată ca unsigned char) care diferă între s1 și s2.

Dacă n este zero, valoarea de returnare este zero.

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

Interfață Atribut Valoare
memcmp() Siguranța firelor MT-Safe

C11, POSIX.1-2008.

POSIX.1-2001, C89, SVr4, 4.3BSD.

Nu utilizați memcmp() pentru a compara date confidențiale, cum ar fi secretele criptografice, deoarece timpul CPU necesar pentru comparație depinde de conținutul adreselor comparate, această funcție este supusă atacurilor pe canalul lateral bazate pe sincronizare. În astfel de cazuri, este necesară o funcție care realizează comparații în timp determinist, în funcție doar de n (cantitatea de octeți comparați). Unele sisteme de operare oferă o astfel de funcție (de exemplu, consttime_memequal() de la NetBSD), dar nu este specificată o astfel de funcție în POSIX. În Linux, este posibil să fie necesar să implementați dumneavoastră o astfel de funcție.

bstring(3), strcasecmp(3), strcmp(3), strcoll(3), strncasecmp(3), strncmp(3), wmemcmp(3)

Traducerea în limba română a acestui manual a fost făcută 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.

31 octombrie 2023 Pagini de manual de Linux 6.06