memcmp - vergleicht Speicherbereiche
Standard-C-Bibliothek (
libc,
-lc)
#include <string.h>
int memcmp(const void s1[.n], const void s2[.n], size_t n);
Die Funktion
memcmp() vergleicht die ersten
n Byte (jedes wird als
unsigned char interpretiert) der Speicherbereiche
s1 und
s2.
Die Funktion
memcmp() gibt eine Ganzzahl zurück, die kleiner als,
gleich oder größer als Null ist, wenn die ersten
n Byte
von
s1 kleiner als, gleich oder größer als die ersten
n Byte von
s2 sind.
Für einen von Null verschiedenen Rückgabewert wird das Vorzeichen
durch das Vorzeichen der Differenz innerhalb des ersten Byte-Paares bestimmt
(als
vorzeichenloses Zeichen interpretiert), das sich in
s1 und
s2 unterscheidet.
Falls
n Null ist, ist der Rückgabewert Null.
Siehe
attributes(7) für eine Erläuterung der in diesem
Abschnitt verwandten Ausdrücke.
Schnittstelle |
Attribut |
Wert |
memcmp() |
Multithread-Fähigkeit |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
Verwenden Sie
memcmp() nicht, um sicherheitskritische Daten wie
kryptographische Geheimnisse zu vergleichen, da die benötigte CPU-Zeit
abhängig von der Anzahl gleicher Bytes ist. Stattdessen wird eine
Funktion benötigt, die den Vergleich in konstanter Zeit
durchführt. Einige Betriebssysteme bieten eine solche Funktion (z.B.
NetBSD's
consttime_memequal()), aber in POSIX ist keine solche Funktion
spezifiziert. Unter Linux kann es notwendig sein, eine solche Funktion selbst
zu implementieren.
bstring(3),
strcasecmp(3),
strcmp(3),
strcoll(3),
strncasecmp(3),
strncmp(3),
wmemcmp(3)
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<
[email protected]>, Martin Eberhard Schauer <
[email protected]>
und Mario Blättermann <
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer