lfind, lsearch -
линейный
поиск в
массиве
Standard C library (
libc,
-lc)
#include <search.h>
void *lfind(const void key[.size], const void base[.size * .nmemb],
size_t *nmemb, size_t size,
int(*compar)(const void [.size], const void [.size]));
void *lsearch(const void key[.size], void base[.size * .nmemb],
size_t *nmemb, size_t size,
int(*compar)(const void [.size], const void [.size]));
Функции
lfind() и
lsearch()
выполняют
линейный
поиск
key в
массиве
base,
который
имеет
*nmemb
элементов,
каждый по
size
байт.
Функция
сравнения,
определяемая
compar, должна
иметь два
параметра,
которые
указывают
на объект
key
и на член
массива, в
указанном
порядке, и
возвращать
ноль, если
объект
key
совпадает
с членом
массива, и
ненулевое
значение в
противном
случае.
Если
lsearch() не
находит
совпадающих
элементов,
то объект
key
вставляется
в конец
таблицы, а
значение
*nmemb
увеличивается.
Отметим,
что теперь
совпадающий
элемент
существует,
и что есть
ещё место.
Функция
lfind()
возвращает
указатель
на
совпадающий
член
массива,
или NULL, если
не было
совпадений.
Функция
lsearch()
возвращает
указатель
на
совпадающий
член
массива,
или на
добавленный
новый член,
если не
было
найдено
совпадений.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
lfind(), lsearch() |
Безвредность
в нитях |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
Присутствует
в libc начиная
с libc-4.6.27.
Неудачно
выбрано
имя.
bsearch(3),
hsearch(3),
tsearch(3)
Русский
перевод
этой
страницы
руководства
был сделан
Artyom Kunyov <
[email protected]>, Azamat Hackimov
<
[email protected]>, Dmitry Bolkhovskikh
<
[email protected]>, Katrin Kutepova <
[email protected]>,
Konstantin Shvaykovskiy <
[email protected]>, Yuri Kozlov
<
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]