epoll_create(2)

الاسم
epoll_create, epoll_create1 - فتح واصف ملف epoll

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <sys/epoll.h>

int epoll_create(int size);
int epoll_create1(int flags);

الوصف
epoll_create() تنشئ مثيل epoll(7) جديد. منذ لينكس 2.6.8، يتم تجاهل وسيط size، لكن يجب أن يكون أكبر من الصفر؛ انظر التاريخ.

epoll_create() تُرجع واصف ملف يشير إلى مثيل epoll الجديد. يُستخدم واصف الملف هذا لجميع الاستدعاءات اللاحقة لواجهة epoll. عندما لا يعود هناك حاجة إليه، يجب إغلاق واصف الملف الذي أرجعته epoll_create() باستخدام close(2). عندما يتم إغلاق جميع واصفات الملفات التي تشير إلى مثيل epoll، يُدمر النواة المثيل ويُحرر الموارد المرتبطة لإعادة الاستخدام.

  epoll_create1()
إذا كان flags يساوي 0، فبصرف النظر عن حقيقة إسقاط وسيط size القديم، فإن epoll_create1() مماثلة لـ epoll_create(). يمكن تضمين القيمة التالية في flags للحصول على سلوك مختلف:

EPOLL_CLOEXEC
    اضبط علامة الإغلاق عند التنفيذ (FD_CLOEXEC) على واصف الملف الجديد. انظر وصف العلامة O_CLOEXEC في open(2) للأسباب التي تجعل هذا مفيدًا.

قيمة الإرجاع
عند النجاح، تُرجع استدعاءات النظام هذه واصف ملف (عدد صحيح غير سالب). عند الخطأ، يتم إرجاع -1، ويتم تعيين errno للإشارة إلى الخطأ.

الأخطاء

EINVAL
    size ليس موجبًا.

EINVAL
    (epoll_create1()) قيمة غير صالحة محددة في flags.

EMFILE
    وُصل إلى الحد الأقصى لواصفات الملفات المفتوحة لكل عملية.

ENFILE
    وُصل إلى الحد الأقصى لإجمالي عدد الملفات المفتوحة على مستوى النظام.

ENOMEM
    ذاكرة غير كافية لإنشاء كائن النواة.

المعايير
لينكس.

التاريخ

epoll_create()
    لينكس 2.6، glibc 2.3.2.

epoll_create1()
    لينكس 2.6.27، glibc 2.9.

في تنفيذ epoll_create() الأولي، أبلغ وسيط size النواة بعدد واصفات الملفات التي يتوقع المتصل إضافتها إلى مثيل epoll. استخدمت النواة هذه المعلومات كتلميح لمقدار المساحة التي ستخصصها مبدئيًا في هياكل البيانات الداخلية التي تصف الأحداث. (إذا لزم الأمر، ستخصص النواة مساحة أكبر إذا تجاوز استخدام المتصل التلميح المعطى في size.) في الوقت الحاضر، لم يعد هذا التلميح مطلوبًا (تقوم النواة بحجم هياكل البيانات المطلوبة ديناميكيًا دون الحاجة إلى التلميح)، لكن يجب أن يكون size أكبر من الصفر، لضمان التوافق مع الإصدارات السابقة عند تشغيل تطبيقات epoll الجديدة على أنوية أقدم.

قبل لينكس 2.6.29، حدد معامل نواة /proc/sys/fs/epoll/max_user_instances مثيلات epoll النشطة لكل معرف مستخدم حقيقي، وتسبب في فشل epoll_create() مع EMFILE عند التجاوز.

انظر أيضًا
close(2), epoll_ctl(2), epoll_wait(2), ioctl_eventpoll(2), epoll(7)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.