Scroll to navigation

memcmp(3) Library Functions Manual memcmp(3)

NAZWA

memcmp - porównuje obszary pamięci

BIBLIOTEKA

Standardowa biblioteka C (libc, -lc)

SKŁADNIA

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

OPIS

Funkcja memcmp() porównuje pierwsze n bajtów (każdy interpretowany jako unsigned char) obszaru pamięci s1 z obszarem s2.

WARTOŚĆ ZWRACANA

Funkcja memcmp() zwraca liczbę całkowitą mniejszą od zera, równą zeru lub większą od zera, jeżeli s1 jest odpowiednio mniejszy niż, równy lub większy niż pierwsze n bajtów s2.

Jeśli wartość zwracana jest niezerowa, dodatni lub ujemny znak tej wartości jest określany na podstawie znaku różnicy pomiędzy pierwszą parę bajtów (interpretowanych jako unsigned char), które się różnią pomiędzy s1 i s2.

Jeśli n jest zerem, zwracaną wartością jest zero.

ATRYBUTY

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

Interfejs Atrybut Wartość
memcmp() Bezpieczeństwo wątkowe MT-bezpieczne

STANDARDY

C11, POSIX.1-2008.

HISTORIA

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

CAVEATS

Do not use memcmp() to compare confidential data, such as cryptographic secrets, because the CPU time required for the comparison depends on the contents of the addresses compared, this function is subject to timing-based side-channel attacks. In such cases, a function that performs comparisons in deterministic time, depending only on n (the quantity of bytes compared) is required. Some operating systems provide such a function (e.g., NetBSD's consttime_memequal()), but no such function is specified in POSIX. On Linux, you may need to implement such a function yourself.

ZOBACZ TAKŻE

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

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek <alpha@irc.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

30 lipca 2023 r. Linux man-pages 6.05.01