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)