memmem

Autres langues

Langue: fr

Version: 13 janvier 1998 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NOM

memmem - Rechercher une sous-chaîne

SYNOPSIS

 #define _GNU_SOURCE
 
#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 occurrence
 de la sous-chaîne aiguille de longueur lg_aiguille 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 extension GNU.
 

BOGUES


 
 Cette fonction ne fonctionnait pas dans les bibliothèques Linux jusqu'à
 libc 5.0.9 incluse, car les arguments
 « aiguille » (Ndt : needle) et « meule_de_foin » (Ndt : haystack) étaient
 inversés. De plus, la fonction renvoyait un pointeur sur la fin
 de la première occurrence de l'aiguille.
 Comme la bibliothèque libc 5.0.9 était largement répandue, cette fonction
 était dangereuse à utiliser.
 
Un bogue supplémentaire existait 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 bibliothèque glibc 2.0 était encore pire, puisqu'elle renvoie un pointeur sur le dernier octet de la « meule_de_foin ». Ceci est corrigé dans la glibc 2.1

VOIR AUSSI


 
 strstr(3),
 
 feature_test_macros(7)
 
 

TRADUCTION


 
 
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 4 novembre 1996 et révisée le 19 novembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 memmem ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.