memcmp(3) Library Functions Manual memcmp(3) NAZWA memcmp - porownuje obszary pamieci BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include int memcmp(const void s1[.n], const void s2[.n], size_t n); OPIS Funkcja memcmp() porownuje pierwsze n bajtow (kazdy interpretowany jako unsigned char) obszaru pamieci s1 z obszarem s2. WARTOSC ZWRACANA Funkcja memcmp() zwraca liczbe calkowita mniejsza od zera, rowna zeru lub wieksza od zera, jezeli s1 jest odpowiednio mniejszy niz, rowny lub wiekszy niz pierwsze n bajtow s2. Jesli wartosc zwracana jest niezerowa, dodatni lub ujemny znak tej wartosci jest okreslany na podstawie znaku roznicy pomiedzy pierwsza pare bajtow (interpretowanych jako unsigned char), ktore sie roznia pomiedzy s1 i s2. Jesli n jest zerem, zwracana wartoscia jest zero. ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------------------+--------------------------+---------------+ |Interfejs | Atrybut | Wartosc | +---------------------------+--------------------------+---------------+ |memcmp() | Bezpieczenstwo watkowe | MT-bezpieczne | +---------------------------+--------------------------+---------------+ STANDARDY C11, POSIX.1-2008. HISTORIA POSIX.1-2001, C89, SVr4, 4.3BSD. ZASTRZEZENIA Nie nalezy uzywac memcmp() do porownywania danych poufnych, takich jak sekrety kryptograficzne, poniewaz czas procesora wymagany do porownywania zalezy od zawartosci porownywanych adresow, co czyni te funkcje podatna na ataki bocznego kanalu bazujace na czasie. W takich przypadkach, wymagana jest funkcja wykonujaca porownanie w deterministycznym czasie, zaleznym tylko od n (liczby porownywanych bajtow). Niektore systemy operacyjne udostepniaja taka funkcje (np. w systemie NetBSD jest to consttime_memequal()), lecz nie okreslono jej w specyfikacji POSIX. W Linuksie, moze byc konieczne samodzielne zaimplementowanie takiej funkcji. ZOBACZ TAKZE bstring(3), strcasecmp(3), strcmp(3), strcoll(3), strncasecmp(3), strncmp(3), wmemcmp(3) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Adam Byrtek , Andrzej Krzysztofowicz , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.8 2 maja 2024 r. memcmp(3)