.\" -*- coding: UTF-8 -*- .\" Copyright 2003, Davide Libenzi .\" Copyright 2007-2018, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH epoll_wait 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم epoll_wait, epoll_pwait, epoll_pwait2 \- انتظار حدث إدخال/إخراج على واصف ملف epoll .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint epoll_wait(\fPint n; \fB int \fP\fIepfd\fP\fB, struct epoll_event \fP\fIevents\fP\fB[\fP\fIn\fP\fB], int \fP\fIn\fP\fB,\fP \fB int \fP\fItimeout\fP\fB);\fP \fBint epoll_pwait(\fPint n; \fB int \fP\fIepfd\fP\fB, struct epoll_event \fP\fIevents\fP\fB[\fP\fIn\fP\fB], int \fP\fIn\fP\fB,\fP \fB int \fP\fItimeout\fP\fB,\fP \fB const sigset_t *_Nullable \fP\fIsigmask\fP\fB);\fP \fBint epoll_pwait2(\fPint n; \fB int \fP\fIepfd\fP\fB, struct epoll_event \fP\fIevents\fP\fB[\fP\fIn\fP\fB], int \fP\fIn\fP\fB,\fP \fB const struct timespec *_Nullable \fP\fItimeout\fP\fB,\fP \fB const sigset_t *_Nullable \fP\fIsigmask\fP\fB);\fP .fi .SH الوصف استدعاء النظام \fBepoll_wait\fP() ينتظر الأحداث على مثيل \fBepoll\fP(7) المشار إليه بواصف الملف \fIepfd\fP. يُستخدم المخزن المؤقت المشار إليه بواسطة \fIevents\fP لإرجاع معلومات من قائمة الجاهزية حول واصفات الملف في قائمة الاهتمام التي تتوفر لها بعض الأحداث. يُرجع \fBepoll_wait()\fP حتى \fIn\fP حدثًا. يجب أن تكون وسيطة \fIn\fP أكبر من الصفر. .P تحدد وسيطة \fItimeout\fP عدد الميلي ثانية التي سيحجب فيها \fBepoll_wait\fP(). يُقاس الوقت مقابل ساعة \fBCLOCK_MONOTONIC\fP. .P سيحجب استدعاء \fBepoll_wait\fP() حتى أحد الشرطين: .IP \[bu] 3 يسلم واصف ملف حدثًا؛ .IP \[bu] الاستدعاء قوطع بواسطة معالج إشارة؛ أو .IP \[bu] تنتهي مهلة timeout. .P لاحظ أن فترة \fItimeout\fP ستُقرّب لأعلى إلى دقة ساعة النظام، وتأخيرات جدولة النواة تعني أن فترة الحجب قد تتجاوز بمقدار صغير. تحديد \fItimeout\fP بقيمة \-1 يجعل \fBepoll_wait\fP() يحجب إلى أجل غير مسمى، بينما تحديد \fItimeout\fP بقيمة صفر يجعل \fBepoll_wait\fP() يعود فورًا، حتى لو لم تتوفر أحداث. .P يُوصف \fIstruct epoll_event\fP في \fBepoll_event\fP(3type). .P يحتوي حقل \fIdata\fP لكل بنية \fIepoll_event\fP مُعادة على نفس البيانات التي تم تحديدها في أحدث استدعاء لـ \fBepoll_ctl\fP(2) (\fBEPOLL_CTL_ADD\fP، \fBEPOLL_CTL_MOD\fP) لواصف الملف المفتوح المقابل. .P .\" حقل \fIevents\fP هو قناع بتات يشير إلى الأحداث التي حدثت لوصف الملف المفتوح المقابل. انظر \fBepoll_ctl\fP(2) للحصول على قائمة بالبتات التي قد تظهر في هذا القناع. .SS epoll_pwait() العلاقة بين \fBepoll_wait\fP() و \fBepoll_pwait\fP() مماثلة للعلاقة بين \fBselect\fP(2) و \fBpselect\fP(2): مثل \fBpselect\fP(2)، يسمح \fBepoll_pwait\fP() للتطبيق بالانتظار بأمان حتى يصبح واصف الملف جاهزًا أو حتى يتم التقاط إشارة. .P استدعاء \fBepoll_pwait\fP() التالي: .P .in +4n .EX ready = epoll_pwait(epfd, &events, n, timeout, &sigmask); .EE .in .P يعادل تنفيذ الاستدعاءات التالية \fIبشكل ذري\fP: .P .in +4n .EX sigset_t origmask; \& pthread_sigmask(SIG_SETMASK, &sigmask, &origmask); ready = epoll_wait(epfd, &events, n, timeout); pthread_sigmask(SIG_SETMASK, &origmask, NULL); .EE .in .P .\" يمكن تحديد وسيطة \fIsigmask\fP كـ NULL، وفي هذه الحالة يكون \fBepoll_pwait\fP() مكافئًا لـ \fBepoll_wait\fP(). .SS epoll_pwait2() استدعاء النظام \fBepoll_pwait2\fP() مكافئ لـ \fBepoll_pwait\fP() باستثناء وسيطة \fItimeout\fP. يأخذ وسيطة من النوع \fItimespec\fP لتتمكن من تحديد مهلة بدقة نانو ثانية. تعمل هذه الوسيطة بنفس الطريقة كما في \fBpselect\fP(2) و \fBppoll\fP(2). إذا كان \fItimeout\fP هو NULL، فيمكن لـ \fBepoll_pwait2\fP() الحجب إلى أجل غير مسمى. .SH "قيمة الإرجاع" عند النجاح، يُرجع \fBepoll_wait\fP() عدد واصفات الملف الجاهزة لعملية الإدخال/الإخراج المطلوبة، أو صفرًا إذا لم يصبح أي واصف ملف جاهزًا خلال \fItimeout\fP ميلي ثانية المطلوبة. عند الفشل، يُرجع \fBepoll_wait\fP() \-1 ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEBADF\fP \fIepfd\fP ليس واصف ملف صالحًا. .TP \fBEFAULT\fP منطقة الذاكرة المشار إليها بواسطة \fIevents\fP غير قابلة للوصول بأذونات الكتابة. .TP \fBEINTR\fP تم مقاطعة الاستدعاء بواسطة معالج إشارة قبل (1) حدوث أي من الأحداث المطلوبة أو (2) انتهاء \fItimeout\fP؛ انظر \fBsignal\fP(7). .TP \fBEINVAL\fP \fIepfd\fP ليس واصف ملف \fBepoll\fP، أو \fIn\fP أقل من أو يساوي الصفر. .SH المعايير لينكس. .SH التاريخ .TP \fBepoll_wait\fP() .\" To be precise: Linux 2.5.44. .\" The interface should be finalized by Linux 2.5.66. لينكس 2.6، glibc 2.3.2. .TP \fBepoll_pwait\fP() لينكس 2.6.19، glibc 2.6. .TP \fBepoll_pwait2\fP() لينكس 5.11. .SH ملاحظات بينما يكون خيط واحد محجوبًا في استدعاء \fBepoll_wait\fP()، من الممكن لخيط آخر إضافة واصف ملف إلى مثيل \fBepoll\fP المنتظر. إذا أصبح واصف الملف الجديد جاهزًا، فسيؤدي ذلك إلى إلغاء حجب استدعاء \fBepoll_wait\fP(). .P إذا كان أكثر من \fIn\fP واصف ملف جاهزًا عند استدعاء \fBepoll_wait\fP()، فإن استدعاءات \fBepoll_wait\fP() المتتالية ستتنقل دوريًا عبر مجموعة واصفات الملف الجاهزة. يساعد هذا السلوك في تجنب سيناريوهات التجويع، حيث تفشل عملية في ملاحظة أن واصفات ملف إضافية جاهزة لأنها تركز على مجموعة من واصفات الملف المعروفة بالفعل بأنها جاهزة. .P لاحظ أنه من الممكن استدعاء \fBepoll_wait\fP() على مثيل \fBepoll\fP تكون قائمة اهتماماته فارغة حاليًا (أو تصبح قائمة اهتماماته فارغة بسبب إغلاق واصفات الملف أو إزالتها من الاهتمام في خيط آخر). سينتظر الاستدعاء حتى يتم لاحقًا إضافة بعض واصفات الملف إلى قائمة الاهتمام (في خيط آخر) ويصبح واصف الملف هذا جاهزًا. .SS "الاختلافات بين مكتبة C والنواة" استدعاءات النظام الخام \fBepoll_pwait\fP() و \fBepoll_pwait2\fP() لها وسيطة سادسة، \fIsize_t sigsetsize\fP، والتي تحدد الحجم بالبايت لوسيطة \fIsigmask\fP. تحدد دالة الغلاف glibc \fBepoll_pwait\fP() هذه الوسيطة كقيمة ثابتة (تساوي \fIsizeof(sigset_t)\fP). .SH العلل قبل لينكس 2.6.37، تُعالج قيمة \fItimeout\fP أكبر من حوالي \fILONG_MAX / HZ\fP ميلي ثانية كـ \-1 (أي، لانهاية). وبالتالي، على سبيل المثال، على نظام حيث \fIsizeof(long)\fP هو 4 وقيمة \fIHZ\fP للنواة هي 1000، فهذا يعني أن المهلات الأكبر من 35.79 دقيقة تُعالج كلانهاية. .SH "انظر أيضًا" \fBepoll_create\fP(2)، \fBepoll_ctl\fP(2)، \fBepoll\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .