aio_suspend(3)

الاسم
aio_suspend - انتظار عملية إدخال/إخراج غير متزامنة أو انتهاء المهلة

المكتبة
مكتبة الوقت الحقيقي (librt، -lrt)

موجز

#include <aio.h>

int aio_suspend(int n;
                const struct aiocb *const aiocb_list[n], int n,
                const struct timespec *restrict timeout);

الوصف
الدالة aio_suspend() تعلق الخيط المستدعي حتى يحدث أحد التالي:

•   اكتمل طلب إدخال/إخراج غير متزامن واحد أو أكثر في القائمة aiocb_list.

•   تم تسليم إشارة.

•   timeout ليس NULL وقد مضت الفترة الزمنية المحددة. (للتفاصيل حول بنية timespec، انظر nanosleep(2).)

الوسيطة n تحدد عدد العناصر في aiocb_list. كل عنصر في القائمة المشار إليها بواسطة aiocb_list يجب أن يكون إما NULL (ثم يُتجاهل)، أو مؤشرًا إلى كتلة تحكم بدئت عليها الإدخال/الإخراج باستخدام aio_read(3) أو aio_write(3) أو lio_listio(3). (انظر aio(7) لوصف بنية aiocb.)

إذا كان CLOCK_MONOTONIC مدعومًا، يُستخدم هذه الساعة لقياس فترة المهلة (انظر clock_gettime(2)).

قيمة الإرجاع
إذا عادت هذه الدالة بعد اكتمال أحد طلبات الإدخال/الإخراج المحددة في aiocb_list، يُعاد 0. وإلا، يُعاد -1، ويُضبط errno للإشارة إلى الخطأ.

الأخطاء

EAGAIN
    انتهت مهلة الاستدعاء قبل اكتمال أي من العمليات المشار إليها.

EINTR
    أنهي الاستدعاء بإشارة (ربما إشارة اكتمال إحدى العمليات التي كنا ننتظرها)؛ انظر signal(7).

ENOSYS
    aio_suspend() غير منفذة.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
aio_suspend() | سلامة الخيوط | MT-Safe

المعايير
POSIX.1-2008.

التاريخ
glibc 2.1. POSIX.1-2001.

POSIX لا يحدد المعاملات لتكون restrict؛ هذا خاص بـ glibc.

ملاحظات
يمكن تحقيق الاستقصاء باستخدام timeout غير NULL يحدد فترة زمنية صفرية.

إذا كان واحد أو أكثر من عمليات الإدخال/الإخراج غير المتزامنة المحددة في aiocb_list قد اكتمل بالفعل وقت استدعاء aio_suspend()، فإن الاستدعاء يعود فورًا.

لتحديد أي عمليات الإدخال/الإخراج اكتملت بعد عودة ناجحة من aio_suspend()، استخدم aio_error(3) لمسح قائمة بنى aiocb المشار إليها بواسطة aiocb_list.

العلل
تنفيذ glibc لـ aio_suspend() ليس آمنًا للإشارات غير المتزامنة، مخالفًا متطلبات POSIX.1.

انظر أيضًا
aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_write(3), lio_listio(3), aio(7), time(7)

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

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

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