|
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ATTRIBUTES | CONFORMING TO | NOTES | SEE ALSO | COLOPHON |
|
|
|
MEMCMP(3) Linux Programmer's Manual MEMCMP(3)
memcmp - compare memory areas
#include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);
The memcmp() function compares the first n bytes (each
interpreted as unsigned char) of the memory areas s1 and s2.
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.
For an explanation of the terms used in this section, see
attributes(7).
┌──────────────────────────────────────┬───────────────┬─────────┐
│Interface │ Attribute │ Value │
├──────────────────────────────────────┼───────────────┼─────────┤
│memcmp() │ Thread safety │ MT-Safe │
└──────────────────────────────────────┴───────────────┴─────────┘
POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
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.
bcmp(3), bstring(3), strcasecmp(3), strcmp(3), strcoll(3),
strncasecmp(3), strncmp(3), wmemcmp(3)
This page is part of release 5.13 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/.
2021-03-22 MEMCMP(3)
Pages that refer to this page: bcmp(3), bstring(3), strcasecmp(3), strcmp(3), strcoll(3), strxfrm(3), wmemcmp(3), signal-safety(7), system_data_types(7)
Copyright and license for this manual page