.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993, David Metcalfe .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH bsearch 3 "10 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم bsearch \- بحث ثنائي لمصفوفة مرتبة .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBvoid *bsearch(\fPsize_t n, size_t size; \fB const void \fP\fIkey\fP\fB[\fP\fIsize\fP\fB], const void \fP\fIbase\fP\fB[\fP\fIsize\fP\fB * \fP\fIn\fP\fB],\fP \fB size_t \fP\fIn\fP\fB, size_t \fP\fIsize\fP\fB,\fP \fB typeof(int (const void [\fP\fIsize\fP\fB], const void [\fP\fIsize\fP\fB]))\fP \fB *\fP\fIcompar\fP\fB);\fP .fi .SH الوصف الدالة \fBbsearch\fP() تبحث في مصفوفة من \fIn\fP كائن، العضو الأول منها مشار إليه بواسطة \fIbase\fP، عن عضو يطابق الكائن المشار إليه بواسطة \fIkey\fP. يُحدد حجم كل عضو في المصفوفة بواسطة \fIsize\fP. .P يجب أن تكون محتويات المصفوفة بترتيب تصاعدي وفقًا لدالة المقارنة المشار إليها بواسطة \fIcompar\fP. يُتوقع من روتين \fIcompar\fP أن يحتوي على وسيطين يشيران إلى كائن \fIkey\fP وعضو المصفوفة، بهذا الترتيب، ويجب أن يُرجع عددًا صحيحًا أقل من، يساوي، أو أكبر من الصفر إذا وُجد كائن \fIkey\fP، على التوالي، أقل من، يطابق، أو أكبر من عضو المصفوفة. .SH "قيمة الإرجاع" تُرجع الدالة \fBbsearch\fP() مؤشرًا إلى عضو مطابق في المصفوفة، أو NULL إذا لم يُعثر على تطابق. إذا وُجدت عناصر متعددة تطابق المفتاح، فإن العنصر المُعاد غير محدد. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBbsearch\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير C11, POSIX.1\-2008. .SH التاريخ POSIX.1\-2001،‏ C89،‏ C99،‏ SVr4،‏ 4.3BSD. .SH أمثلة المثال أدناه يرتب أولاً مصفوفة من الهياكل باستخدام \fBqsort\fP(3)، ثم يسترجع العناصر المطلوبة باستخدام \fBbsearch\fP(). .P .\" SRC BEGIN (bsearch.c) .EX #include #include #include #include \& 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, countof(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, countof(months), sizeof(months[0]), compmi); if (res == NULL) printf("\[aq]%s\[aq]: unknown month\[rs]n", argv[i]); else printf("%s: month #%d\[rs]n", 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 ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .