Scroll to navigation

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)

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан aereiae <aereiae@gmail.com>, Alexey <a.chepugov@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, ITriskTI <ITriskTI@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Малянов Евгений Викторович <maljanow@outlook.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

15 сентября 2017 г.