| 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 للإشارة إلى الخطأ.
الأخطاء¶
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر 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 |