io_getevents(2)

الاسم
io_getevents - اقرأ أحداث الإدخال/الإخراج غير المتزامنة من طابور الإكمال

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

موجز
#include <linux/aio_abi.h>    /* Definition of *io_* types */
#include <sys/syscall.h>      /* Definition of SYS_* constants */
#include <unistd.h>

int syscall(SYS_io_getevents, aio_context_t ctx_id,
            long min_nr, long nr, struct io_event *events,
            struct timespec *timeout);

الوصف
ملاحظة: ربما تريد استخدام دالة الغلاف io_getevents(3) التي يوفرها libaio؛ انظر الإصدارات.

استدعاء النظام io_getevents() يحاول قراءة min_nr حدث على الأقل وحتى nr حدث من طابور الإكمال لسياق AIO المحدد بواسطة ctx_id.

الوسيطة timeout تحدد مقدار الوقت للانتظار للأحداث، وتُحدد كمهلة نسبية في بنية timespec(3).

الوقت المحدد يُقرّب لأعلى لدقة ساعة النظام ويُضمن عدم انتهائه مبكرًا.

تحديد timeout كـ NULL يعني الحظر إلى أجل غير مسمى حتى يتم الحصول على min_nr حدث على الأقل.

قيمة الإرجاع
عند النجاح، تُرجع io_getevents() عدد الأحداث المقروءة. قد يكون هذا 0، أو قيمة أقل من min_nr، إذا انتهت المهلة timeout. قد يكون أيضًا قيمة غير صفرية أقل من min_nr، إذا قاطع معالج إشارة الاستدعاء.

عند الخطأ، تُعاد القيمة -1، ويُضبط errno للإشارة إلى الخطأ.

الأخطاء

EFAULT
    إما events أو timeout مؤشر غير صالح.

EINTR
    مقاطع بواسطة معالج إشارة؛ انظر signal(7).

EINVAL
    ctx_id غير صالح.

EINVAL
    min_nr خارج النطاق أو nr خارج النطاق.

ENOSYS
    io_getevents() غير مطبّق على هذه البنية.

الإصدارات
توفر libaio (https://pagure.io/libaio) دالة تغليف تحمل الاسم نفسه، ولكن بنموذج أولي وقيمة إرجاع مختلفين. من المرجح أنك تريد استخدام دالة التغليف تلك.

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

التاريخ
لينكس 2.5.

انظر أيضًا
io_cancel(2), io_destroy(2), io_setup(2), io_submit(2), io_getevents(3), timespec(3), aio(7), time(7)

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

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

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