memmem

Autres langues

Langue: es

Version: 13 Enero 1998 (fedora - 25/11/07)

Section: 3 (Bibliothèques de fonctions)

NOMBRE

memmem - localiza una subcadena

SINOPSIS

 #include <string.h>
 
 void *memmem(const void *haystack, size_t haystacklen,
 
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)