Provided by: manpages-dev_5.10-1ubuntu1_all bug

NAME

       memcmp - compare memory areas

SYNOPSIS

       #include <string.h>

       int memcmp(const void *s1, const void *s2, size_t n);

DESCRIPTION

       The  memcmp() function compares the first n bytes (each interpreted as unsigned char) of the memory areas
       s1 and s2.

RETURN VALUE

       The memcmp() function returns an integer less than, equal to, or greater than zero if the first  n  bytes
       of s1 is found, respectively, to be less than, to match, or be greater than the first n bytes of s2.

       For  a  nonzero return value, the sign is determined by the sign of the difference between the first pair
       of bytes (interpreted as unsigned char) that differ in s1 and s2.

       If n is zero, the return value is zero.

ATTRIBUTES

       For an explanation of the terms used in this section, see attributes(7).
       ┌───────────┬───────────────┬─────────┐
       │ InterfaceAttributeValue   │
       ├───────────┼───────────────┼─────────┤
       │ memcmp()  │ Thread safety │ MT-Safe │
       └───────────┴───────────────┴─────────┘

CONFORMING TO

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

NOTES

       Do not use memcmp() to compare security  critical  data,  such  as  cryptographic  secrets,  because  the
       required CPU time depends on the number of equal bytes.  Instead, a function that performs comparisons in
       constant   time   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,  it  may  be  necessary  to
       implement such a function oneself.

SEE ALSO

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

COLOPHON

       This  page  is  part  of  release  5.10  of  the  Linux man-pages project.  A description of the project,
       information  about  reporting  bugs,  and  the  latest  version  of  this   page,   can   be   found   at
       https://www.kernel.org/doc/man-pages/.

                                                   2017-09-15                                          MEMCMP(3)