MEMCMP(3) Manual do Programador do Linux MEMCMP(3)

memcmp - compara áreas de memória

#include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);

A função memcmp() compara os primeiros n bytes (cada um interpretado como unsigned char) das áreas de memórias s1 e s2.

A função memcmp() retorna um inteiro menor que, igual a, ou maior que zero se os primeiros n bytes de s1 são encontrados, respectivamente, menor que, igual a, ou maior que os primeiros n bytes de s2.

Para um valor de retorno diferente de zero, o sinal é determinado pelo sinal da diferença entre o primeiro par de bytes (interpretado como unsigned char) que diferem em s1 e s2.

Se n for zero, o valor de retorno é zero.

Para uma explicação dos termos usados nesta seção, consulte attributes(7).

Interface Atributo Valor
memcmp() Thread safety MT-Safe

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

Não use memcmp() para comparar dados críticos de segurança, como segredos criptográficos, porque o tempo de CPU necessário depende do número de bytes iguais. Em vez disso, é necessária uma função que execute comparações em tempo constante. Alguns sistemas operacionais fornecem tal função (por exemplo, consttime_memequal() do NetBSD), mas nenhuma função é especificada no POSIX. No Linux, pode ser necessário implementar essa função sozinho.

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

Esta página faz parte da versão 5.13 do projeto Linux man-pages. Uma descrição do projeto, informações sobre relatórios de bugs e a versão mais recente desta página podem ser encontradas em https://www.kernel.org/doc/man-pages/.

A tradução para português brasileiro desta página man foi criada por Felipe M Pereira <Felipe.Pereira@ic.unicamp.br>, André Luiz Fassone <lonely_wolf@ig.com.br> e Rafael Fontenelle <rafaelff@gnome.org>.

Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.

Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de discussão de tradutores.

22 março 2021