.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Mon Mar 29 22:41:16 1993, David Metcalfe .\" Modified Sat Jul 24 21:35:16 1993, Rik Faith (faith@cs.unc.edu) .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH bsearch 3 "2023년 7월 20일" "Linux man\-pages 6.05.01" .SH 이름 bsearch \- 정렬된 배열의 이진 탐색 .SH 라이브러리 표준 C 라이브러리 (\fIlibc\fP, \fI\-lc\fP) .SH 요약 .nf \fB#include \fP .PP \fBvoid *bsearch(const void \fP\fIkey\fP\fB[.\fP\fIsize\fP\fB], const void \fP\fIbase\fP\fB[.\fP\fIsize\fP\fB * .\fP\fInmemb\fP\fB],\fP \fB size_t \fP\fInmemb\fP\fB, size_t \fP\fIsize\fP\fB,\fP \fB int (*\fP\fIcompar\fP\fB)(const void [.\fP\fIsize\fP\fB], const void [.\fP\fIsize\fP\fB]));\fP .fi .SH 설명 \fBbsearch\fP() 함수는 \fInmemb\fP 오브젝트의 어레이를 찾는다, 그것의 최초 구성은 \fIkey\fP로 지정된 오브젝트에 해당하는 구성으로, \fIbase\fP에 의해 지정된다. 각 어레이 구성의 크기는 \fIsize\fP로 지정된다. .PP 어레이의 내용은 \fIcompar\fP와 관련된 비교 기능을 이용하여 상방정렬 되어야한다. \fIcompar\fP 루틴은 \fIkey\fP를 지정하는 것과 어레이의 구성을 지정하는 두개의 변수를 가진다. 그리고 이것은\fIkey\fP오브젝트가 찾아지면 0보다 작거나 큰 정수를 반환해야 한다. .SH 반환값 \fBbsearch\fP() 함수는 어레이에서 맞는 구성 요소를 잦아 그 포인터를 반환한다. 만약 맞는게 없다면 널을 반환한다. 키에 해당하는 구성요소가 여러 개 있다면, 반환되는 요소는 특별히 지정되지 않는다. .SH 속성 이 섹션에서 사용되는 용어에 대한 설명은 \fBattributes\fP(7)을 참조하십시오. .TS allbox; lbx lb lb l l l. 상호 작용 속성 번호 T{ .na .nh \fBbsearch\fP() T} Thread safety MT\-Safe .TE .sp 1 .SH 표준 C11, POSIX.1\-2008. .SH 이력 POSIX.1\-2001, C89, C99, SVr4, 4.3BSD. .SH 폐제 The example below first sorts an array of structures using \fBqsort\fP(3), then retrieves desired elements using \fBbsearch\fP(). .PP .\" SRC BEGIN (bsearch.c) .EX #include #include #include \& #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("\[aq]%s\[aq]: unknown month\en", argv[i]); else printf("%s: month #%d\en", res\->name, res\->nr); } exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "추가 참조" \fBhsearch\fP(3), \fBlsearch\fP(3), \fBqsort\fP(3), \fBtsearch\fP(3) .PP .SH 번역 이 매뉴얼 페이지의 한국어 번역은 다음에 의해 편집되었습니다: ASPLINUX . .PP 이 번역은 무료 문서입니다. 저작권 조건에 대해서는 .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License 버전 3 .UE 이상을 읽으십시오. 책임이 없습니다. .PP 이 매뉴얼 페이지의 번역에서 오류를 발견하면 .MT translation-team-ko@googlegroups.com .ME 로 이메일을 보내주십시오.