MEMCMP(3) | Руководство программиста Linux | MEMCMP(3) |
memcmp — сравнить области памяти
#include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);
Функция memcmp() сравнивает первые n байт (каждый как unsigned char) из областей памяти s1 и s2.
Функция memcmp() возвращает целое число меньше, равное, или выше нуля если первые n байт из s1 соответственно меньше, равны, или больше чем первые n байт из s2.
Для возвращаемого значения, отличного от нуля, его знак определяется знаком разности первой пары байтов (которые unsigned char) в s1 и s2.
Если n равно нулю, возвращаемое значение тоже ноль.
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение |
memcmp() | Безвредность в нитях | MT-Safe |
POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
Не используйте memcmp() для сравнения важных с точки зрения безопасности данных, как например криптографические секреты, потому что для этой функции требуемое время CPU зависит от числа одинаковых байтов. Используйте функции, производящие сравнение за constant time. (Например в NetBSD функция consttime_memequal()). В POSIX подобная функция не предусмотрена.
bcmp(3), bstring(3), strcasecmp(3), strcmp(3), strcoll(3), strncasecmp(3), strncmp(3), wmemcmp(3)
2017-09-15 |