memmem

Autres langues

Langue: fr

Version: 21 juillet 2003 (openSuse - 09/10/07)

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 occurence

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 extensioin 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 occurence de l'aiguille.

Comme la bibliothèque libc 5.0.9 était largement répandue, cette fonction

était dangereuse à utiliser.


Un bug 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)



TRADUCTION





Christophe Blaess, 1996-2003.