memcmp — сравнить
области
памяти
Standard C library (
libc,
-lc)
#include <string.h>
int memcmp(const void s1[.n], const void s2[.n], 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, C99, SVr4, 4.3BSD.
Не
используйте
memcmp() для
сравнения
важных с
точки
зрения
безопасности
данных, как
например
криптографические
секреты,
потому что
для этой
функции
требуемое
время CPU
зависит от
числа
одинаковых
байтов.
Используйте
функции,
производящие
сравнение
за constant time.
(Например в
NetBSD функция
consttime_memequal()). В POSIX
подобная
функция не
предусмотрена.
bstring(3),
strcasecmp(3),
strcmp(3),
strcoll(3),
strncasecmp(3),
strncmp(3),
wmemcmp(3)
Русский
перевод
этой
страницы
руководства
был сделан
aereiae <
[email protected]>, Alexey <
[email protected]>, Azamat
Hackimov <
[email protected]>, Dmitriy S. Seregin
<
[email protected]>, Dmitry Bolkhovskikh <
[email protected]>,
ITriskTI <
[email protected]>, Max Is <
[email protected]>, Yuri
Kozlov <
[email protected]>, Иван
Павлов <
[email protected]>
и Малянов
Евгений
Викторович
<
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]