table of contents
MEMCHR(3) | Руководство программиста Linux | MEMCHR(3) |
ИМЯ¶
memchr, memrchr, rawmemchr - ищет символ в памяти
ОБЗОР¶
#include <string.h> void *memchr(const void *s, int c, size_t n); void *memrchr(const void *s, int c, size_t n); void *rawmemchr(const void *s, int c);
Требования
макроса
тестирования
свойств
для glibc (см.
feature_test_macros(7)):
memrchr(), rawmemchr(): _GNU_SOURCE
ОПИСАНИЕ¶
Функция memchr() сканирует первые n байт участка памяти, указанного в s, в поисках экземпляра c. Считается, что байты в памяти, указанной s, и значение c имеют тип unsigned char.
Функция memrchr() похожа на memchr(), за исключением того, что она ищет в участке n байт, указанных в s, не сначала, а с конца.
Функция
rawmemchr() похожа
на memchr(): она
подразумевает
(то есть
программист
в этом
уверен), что
экземпляр
c точно
находится
где-то в
памяти
начало
которой
указано s, и
при это
производит
оптимизированный
поиск
символа c
(то есть, не
используется
счётчик
для
ограничения
диапазона
поиска).
Если
экземпляр
c не найден,
то
результат
непредсказуем.
Следующий
вызов
является
примером
быстрого
поиска
завершающего
строку
байта null:
char *p = rawmemchr(s, '\0');
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
Функции memchr() и memrchr() возвращают указатель на совпавший байт, либо NULL, если в указанном участке памяти искомого байта нет.
Функция rawmemchr() возвращает указатель на совпавший байт (если он был обнаружен). Если совпадений не найдено, результат не определён.
ВЕРСИИ¶
Функция rawmemchr() впервые появилась в glibc 2.1.
Функция memrchr() впервые появилась в glibc 2.2.
СООТВЕТСТВИЕ СТАНДАРТАМ¶
Функция memchr() соответствует SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
Функция memrchr() является расширением GNU, доступным в glibc начиная с версии 2.1.91.
Функция rawmemchr() является расширением GNU, доступным в glibc начиная с версии 2.1.
СМОТРИТЕ ТАКЖЕ¶
ffs(3), index(3), rindex(3), strchr(3), strpbrk(3), strrchr(3), strsep(3), strspn(3), strstr(3), wmemchr(3)
2012-04-23 |