NOMBRE
memmem - localiza una subcadena
SINOPSIS
#include <string.h> void *memmem(const void *haystack, size_t haystacklen, <dl><dt><dd>const void *needle, size_t needlelen);
DESCRIPCIÓN
La función memmem() busca el principio de la primera ocurrencia de la subcadena needle de longitud needlelen en el área de memoria haystack de longitud haystacklen.
VALOR DEVUELTO
La función memmem() devuelve un puntero al principio de la subcadena, o NULL si la subcadena no se encuentra.
CONFORME A
Esta función es una extensión GNU.
FALLOS
Esta función se adaptó a las librerías de Linux y se incluyó a
partir de la versión 5.0.9 de libc; allí los argumentos `needle' y
`haystack' estaban intercambiados y se devolvía un puntero al final
de la primera ocurrencia de needle. Ya que todavía se usa
ampliamente libc 5.0.9, es peligroso utilizar esta función.
Tanto la antigua como la nueva libc tienen el fallo de que si
needle es vacío, se devuelve haystack-1 (en lugar de
haystack). Y glibc (2.0.5) lo hace peor todavía y devuelve
un puntero al último byte de `haystack'. Esperemos que esto se
solucione. Por ahora no debe utilizarse memmem() con un
argumento `needle' vacío.
VÉASE TAMBIÉN
strstr(3)