MEMMEM(3) Manuel du programmeur Linux MEMMEM(3)
NOM
memmem - Rechercher une sous-chaîne.
SYNOPSIS
#include <string.h>
void *memmem (const void *meule_de_foin, size_t lg_meule,
const void *aiguille, size_t lg_aiguille);
DESCRIPTION
La fonction memmem() recherche le début de la première
occurence de la sous-chaîne aiguille de longueur lg_aigu
ille au sein de la zone de mémoire meule_de_foin de
longueur lg_meule.
VALEUR RENVOYÉE
La fonction memmem() renvoie un pointeur sur le début de
la sous-chaîne, ou NULL si aucune sous-chaîne n'est
trouveé.
CONFORMITÉ
Cette fonction est une extensioin GNU.
BUGS
Cette fonction ne fonctionnait pas dans les bibliothèques
Linux jusqu'à libc 5.0.9 incluse, car les arguments `aigu
ille' (NDT: needle) et `meule_de_foin' (NDT: haystack)
étaient inversés. De plus la fonction renvoyait un poin
teur sur la fin de la première occurence de l'aiguille.
Comme la bibliothèque libc 5.0.9 est largement répandue,
cette fonction est dangereuse à utiliser.
Un bug supplémentaire existe dans toutes les bibliothèques
libc : Si la chaîne aiguille est vide, la fonction renvoie
meule_de_foin-1 (au lieu de meule_de_foin). La bib
liothèque glibc (2.0.5) est encore pire, puisqu'elle ren
voie un pointeur sur le dernier octet de la
`meule_de_foin'. Bien sûr tout ceci va être corrigé. Pour
le moment, n'utiliser jamais memmem() avec une aiguille
vide.
VOIR AUSSI
strstr(3)
TRADUCTION
Christophe Blaess, 1997.
GNU 17 Mai 1998 1