Provided by: manpages-pl-dev_4.23.1-1_all bug

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).

       ┌────────────────────────────────────────────────┬────────────────────────┬───────────────┐
       │InterfejsAtrybutWartość       │
       ├────────────────────────────────────────────────┼────────────────────────┼───────────────┤
       │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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.