memmem - ведет поиск подстроки
НАЗВАНИЕmemmem - ведет поиск подстроки
СИНТАКСИС
#define _GNU_SOURCE
#include
void *memmem(const void *haystack, size_t haystacklen,
const void *needle, size_t needlelen);
ОПИСАНИЕ
Функция memmem() ищет первое совпадение с подстрокой nee-
dle длиной needlelen в области памяти haystack длиной
haystacklen.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция memmem() возвращает указатель на начало подстроки
или NULL, если подстрока не найдена.
СООТВЕТСТВИЕ СТАНДАРТАМ
Эта функция является расширением GNU.
НАЙДЕННЫЕ ОШИБКИ
Данная функция была "разбросана" по библиотекам Linux до
версии libc 5.0.9 включительно; аргументы "needle" и
"haystack" менялись местами, при этом возвращался
указатель на конец первого совпадения needle. Начиная с
версий libc 5.0.9, она до сих пор широко используется, но
является опасной для работы.
И старые, и новые библиотеки libc содержат такую ошибку:
если needle "пустое", то возвращается haystack-1 (вместо
haystack). А в библиотеке glibc (2.0.5) ситуация
ухудшается: возвращается указатель на последний байт
`haystack'. Это исправлено в glibc 2.1.