xenial (3) memcmp.3.gz

Provided by: manpages-dev_4.04-2_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), strcasecmp(3), strcmp(3), strcoll(3), strncasecmp(3), strncmp(3), wmemcmp(3)

COLOPHON

       This page is part of release 4.04 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
       http://www.kernel.org/doc/man-pages/.

                                                   2015-08-08                                          MEMCMP(3)