aio_read(3)

الاسم
aio_read - قراءة غير متزامنة

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

موجز
#include <aio.h>

int aio_read(struct aiocb *aiocbp);

الوصف
الدالة aio_read() تُصَفّ طلب الإدخال/الإخراج الموصوف بالمخزن المشار إليه بواسطة aiocbp. هذه الدالة هي النظير غير المتزامن لـ read(2). وسائط الاستدعاء

    read(fd, buf, count)

تتوافق (بالترتيب) مع الحقول aio_fildes و aio_buf و aio_nbytes للبنية التي يشير إليها aiocbp. (راجع aio(7) لوصف بنية aiocb.)

تُقرأ البيانات بدءًا من الموضع المطلق aiocbp->aio_offset، بغض النظر عن إزاحة الملف. بعد الاستدعاء، تكون قيمة إزاحة الملف غير محددة.

يعني "غير متزامن" أن هذا الاستدعاء يعود فور إدراج الطلب في الطابور؛ قد تكون القراءة قد اكتملت أو لا عند عودة الاستدعاء. يُختبر الاكتمال باستخدام aio_error(3). يمكن الحصول على حالة الإرجاع لعملية إدخال/إخراج مكتملة بواسطة aio_return(3). يمكن الحصول على إعلام غير متزامن باكتمال الإدخال/الإخراج بتعيين aiocbp->aio_sigevent بشكل مناسب؛ انظر sigevent(3type) للتفاصيل.

إذا كان _POSIX_PRIORITIZED_IO معرفا، وهذا الملف يدعمه، فإن العملية غير المتزامنة تُقدم بأولوية تساوي أولوية العملية المستدعِيَة ناقص aiocbp->aio_reqprio.

يُتجاهَل الحقل aiocbp->aio_lio_opcode.

لا تُقرأ أي بيانات من ملف عادي بعد أقصى إزاحة له.

قيمة الإرجاع
عند النجاح، يُعاد 0. عند حدوث خطأ، لا يوضع الطلب في الدور، ويُعاد -1، ويُضبط errno للإشارة إلى الخطأ. إذا اكتشف الخطأ لاحقًا، سيجري الإبلاغ عنه عبر aio_return(3) (يعيد الحالة -1) و aio_error(3) (حالة الخطأ—أياً كان ما قد يحصل عليه المرء في errno، مثل EBADF).

الأخطاء

EAGAIN
    نفاد الموارد.

EBADF
    aio_fildes ليس واصف ملف صالحًا مفتوحًا للقراءة.

EINVAL
    واحد أو أكثر من aio_offset أو aio_reqprio أو aio_nbytes غير صالح.

ENOSYS
    aio_read() غير مُطبّقة.

EOVERFLOW
    الملف هو ملف عادي، نبدأ القراءة قبل نهاية الملف ونريد بايت واحد على الأقل، لكن موضع البداية يتجاوز أقصى إزاحة لهذا الملف.

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

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

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

ملاحظات
من الجيد تصفير كتلة التحكم قبل الاستخدام. يجب عدم تغيير كتلة التحكم أثناء تنفيذ عملية القراءة. يجب عدم الوصول إلى منطقة المخزن التي تُقرأ فيها البيانات أثناء العملية وإلا قد تحدث نتائج غير محددة. يجب أن تظل مناطق الذاكرة المعنية صالحة.

تؤدي عمليات الإدخال/الإخراج المتزامنة التي تحدد نفس بنية aiocb إلى نتائج غير محددة.

أمثلة
انظر aio(7).

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

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

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

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