Provided by: manpages-ko-dev_4.27.0-1_all bug

이름

       bsearch - 정렬된 배열의 이진 탐색

라이브러리

       표준 C 라이브러리 (libc, -lc)

요약

       #include <stdlib.h>

       void *bsearch(const void key[.size], const void base[.size * .nmemb],
                     size_t nmemb, size_t size,
                     int (*compar)(const void [.size], const void [.size]));

설명

       bsearch()  함수는  nmemb  오브젝트의 어레이를 찾는다, 그것의 최초 구성은 key로 지정된 오브젝트에 해당하는
       구성으로, base에 의해 지정된다. 각 어레이 구성의 크기는 size로 지정된다.

       어레이의 내용은 compar와 관련된 비교 기능을 이용하여 상방정렬 되어야한다.  compar 루틴은  key를  지정하는
       것과  어레이의  구성을 지정하는 두개의 변수를 가진다. 그리고 이것은key오브젝트가 찾아지면 0보다 작거나 큰
       정수를 반환해야 한다.

반환값

       bsearch() 함수는 어레이에서 맞는 구성 요소를 잦아 그 포인터를 반환한다. 만약 맞는게 없다면 널을 반환한다.
       키에 해당하는 구성요소가 여러 개 있다면, 반환되는 요소는 특별히 지정되지 않는다.

속성

       이 섹션에서 사용되는 용어에 대한 설명은 attributes(7)을 참조하십시오.
       ┌─────────────────────────────────────────────────────────────────────────────┬───────────────┬─────────┐
       │ 상호 작용속성번호    │
       ├─────────────────────────────────────────────────────────────────────────────┼───────────────┼─────────┤
       │ bsearch()                                                                   │ Thread safety │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────────┴───────────────┴─────────┘

표준

       C11, POSIX.1-2008.

이력

       POSIX.1-2001, C89, C99, SVr4, 4.3BSD.

폐제

       The example below first sorts an array of structures using  qsort(3),  then  retrieves  desired  elements
       using bsearch().

       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>

       #define ARRAY_SIZE(arr)  (sizeof((arr)) / sizeof((arr)[0]))

       struct mi {
           int         nr;
           const char  *name;
       };

       static struct mi  months[] = {
           { 1, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" },
           { 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" },
           { 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "dec" }
       };

       static int
       compmi(const void *m1, const void *m2)
       {
           const struct mi *mi1 = m1;
           const struct mi *mi2 = m2;

           return strcmp(mi1->name, mi2->name);
       }

       int
       main(int argc, char *argv[])
       {
           qsort(months, ARRAY_SIZE(months), sizeof(months[0]), compmi);
           for (size_t i = 1; i < argc; i++) {
               struct mi key;
               struct mi *res;

               key.name = argv[i];
               res = bsearch(&key, months, ARRAY_SIZE(months),
                             sizeof(months[0]), compmi);
               if (res == NULL)
                   printf("'%s': unknown month\n", argv[i]);
               else
                   printf("%s: month #%d\n", res->name, res->nr);
           }
           exit(EXIT_SUCCESS);
       }

추가 참조

       hsearch(3), lsearch(3), qsort(3), tsearch(3)

번역

       이 매뉴얼 페이지의 한국어 번역은 다음에 의해 편집되었습니다: ASPLINUX <man@asp-linux.co.kr>

       이  번역은  무료  문서입니다. 저작권 조건에 대해서는 GNU General Public License 버전 3 이상을 읽으십시오.
       책임이 없습니다.

       이  매뉴얼  페이지의  번역에서   오류를   발견하면   translation-team-ko@googlegroups.com   로   이메일을
       보내주십시오.

Linux man-pages 6.9.1                            2024년 6월 15일                                      bsearch(3)