memcmp(3) | Library Functions Manual | memcmp(3) |
NOME
memcmp - compara áreas de memória
BIBLIOTECA
Biblioteca C Padrão (libc, -lc)
SINOPSE
#include <string.h>
int memcmp(const void s1[.n], const void s2[.n], size_t n);
DESCRIÇÃO
A função memcmp() compara os primeiros n bytes (cada um interpretado como unsigned char) das áreas de memórias s1 e s2.
VALOR DE RETORNO
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.
ATRIBUTOS
Para uma explicação dos termos usados nesta seção, consulte attributes(7).
Interface | Atributo | Valor |
memcmp() | Thread safety | MT-Safe |
PADRÕES
C11, POSIX.1-2008.
HISTÓRICO
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.
VEJA TAMBÉM
bstring(3), strcasecmp(3), strcmp(3), strcoll(3), strncasecmp(3), strncmp(3), wmemcmp(3)
TRADUÇÃO
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.
2 maio 2024 | Linux man-pages 6.9.1 |