Scroll to navigation

memcmp(3) Library Functions Manual memcmp(3)

ИМЯ

memcmp — сравнить области памяти

БИБЛИОТЕКА

Стандартная библиотека языка C (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

СТАНДАРТЫ

C11, POSIX.1-2008.

ИСТОРИЯ

POSIX.1-2001, C89, SVr4, 4.3BSD.

CAVEATS

Do not use memcmp() to compare confidential data, such as cryptographic secrets, because the CPU time required for the comparison depends on the contents of the addresses compared, this function is subject to timing-based side-channel attacks. In such cases, a function that performs comparisons in deterministic time, depending only on n (the quantity of bytes compared) 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, you may need to implement such a function yourself.

СМОТРИТЕ ТАКЖЕ

bstring(3), strcasecmp(3), strcmp(3), strcoll(3), strncasecmp(3), strncmp(3), wmemcmp(3)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) 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 (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.

2 мая 2024 г. Справочные страницы Linux 6.8