memcmp - Comparer deux zones mémoire
Bibliothèque C standard (
libc,
-lc)
#include <string.h>
int memcmp(const void s1[.n], const void s2[.n], size_t n);
La fonction
memcmp() compare les
n premiers octets (chacun
interprété comme
unsigned char) des zones mémoire
s1 et
s2.
La fonction
memcmp() renvoie un entier inférieur, égal ou
supérieur à zéro si les
n premiers octets de
s1 sont respectivement inférieurs, égaux ou
supérieurs aux
n premiers octets de
s2.
Lorsque la valeur renvoyée est différente de zéro, elle est
de même signe que la différence entre les deux premiers octets
(interprétés comme
unsigned char) qui diffèrent
dans
s1 et
s2.
Si
n vaut zéro, la valeur renvoyée est zéro.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
memcmp() |
Sécurité des threads |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
Ne pas utiliser
memcmp() pour comparer des données critiques du
point de vue de la sécurité, telles que des secrets
cryptographiques, parce que son temps d'exécution dépend du
nombre d'octets égaux. Il est nécessaire d'utiliser une fonction
qui effectue des comparaisons en temps constant à la place. Certains
systèmes d'exploitation fournissent une telle fonction (par exemple
consttime_memequal() de NetBSD), mais aucune fonction de ce genre n'est
spécifiée par POSIX. Sur Linux, il peut être
nécessaire d'implémenter une telle fonction soi-même.
bstring(3),
strcasecmp(3),
strcmp(3),
strcoll(3),
strncasecmp(3),
strncmp(3),
wmemcmp(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Lucien Gentis
<
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]