#include <string.h>
int memcmp(const void s1[.n], const void s2[.n], size_t n);
The memcmp() function compares the first n bytes (each interpreted as unsigned char) of the memory areas s1 and s2.
memcmp() 함수는 s1의 처음 n 바이트가 s2의 처음 n 바이트보다 작거나 같거나 크다면, 각각 0보다 작은 정수, 0, 0보다 큰 정수를 반환한다.
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(7)EN을 참조하십시오.
| 상호 작용 | 속성 | 번호 |
| memcmp() | Thread safety | MT-Safe |
POSIX.1-2001, POSIX.1-2008, 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.