Scroll to navigation

lsearch(3) Library Functions Manual lsearch(3)

ИМЯ

lfind, lsearch - линейный поиск в массиве

LIBRARY

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-2008.

ИСТОРИЯ

POSIX.1-2001, SVr4, 4.3BSD. libc-4.6.27.

ОШИБКИ

Неудачно выбрано имя.

СМОТРИТЕ ТАКЖЕ

bsearch(3), hsearch(3), tsearch(3)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал Artyom Kunyov <artkun@guitarplayer.ru>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Konstantin Shvaykovskiy <kot.shv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.

2 мая 2024 г. Linux man-pages (unreleased)