Scroll to navigation

aio_suspend(3) Library Functions Manual 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 للإشارة إلى الخطأ.

الأخطاء

انتهت مهلة الاستدعاء قبل اكتمال أي من العمليات المشار إليها.
أنهي الاستدعاء بإشارة (ربما إشارة اكتمال إحدى العمليات التي كنا ننتظرها)؛ انظر signal(7).
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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

8 فبراير 2026 صفحات دليل لينكس 6.18