Provided by: manpages-pl-dev_4.26.0-1_all 

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.
ZASTRZEŻENIA
Nie należy używać memcmp() do porównywania danych poufnych, takich jak sekrety kryptograficzne, ponieważ
czas procesora wymagany do porównywania zależy od zawartości porównywanych adresów, co czyni tę funkcję
podatną na ataki bocznego kanału bazujące na czasie. W takich przypadkach, wymagana jest funkcja
wykonująca porównanie w deterministycznym czasie, zależnym tylko od n (liczby porównywanych bajtów).
Niektóre systemy operacyjne udostępniają taką funkcję (np. w systemie NetBSD jest to
consttime_memequal()), lecz nie określono jej w specyfikacji POSIX. W Linuksie, może być konieczne
samodzielne zaimplementowanie takiej funkcji.
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.
Linux man-pages 6.9.1 2 maja 2024 r. memcmp(3)