aio_write(3)

الاسم
aio_write - كتابة غير متزامنة

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

موجز
#include <aio.h>

int aio_write(struct aiocb *aiocbp);

الوصف
الدالة aio_write() تصطف طلب الإدخال/الإخراج الموصوف بالمخزن المؤقت المشار إليه بواسطة aiocbp. هذه الدالة هي النظير غير المتزامن لـ write(2). وسيطات الاستدعاء

    write(fd, buf, count)

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

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

يعني "غير متزامن" أن هذا الاستدعاء يعود حالما يُصطف الطلب؛ قد تكون الكتابة قد اكتملت أو لا عند عودة الاستدعاء. يُختبر الاكتمال باستخدام 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 ليس واصف ملف صالحًا مفتوحًا للكتابة.

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

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

ENOSYS
    aio_write() غير مطبقة.

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

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

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

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

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

انظر أيضًا
aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_suspend(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.