.\" -*- coding: UTF-8 -*- .\" Copyright 2003, Free Software Foundation, Inc. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH io_submit 2 "11 أبريل 2026" "صفحات دليل لينكس 6.18" .SH الاسم io_submit \- إرسال كتل الإدخال/الإخراج غير المتزامنة للمعالجة .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP \fB#include \fP /* تعريف ثوابت SYS_* */ \fB#include \fP .P \fBint\ syscall(SYS_io_submit, aio_context_t\ \fP\fIctx_id\fP\fB,\fP \fB long\ \fP\fIn\fP\fB, struct\ iocb\ *\fP\fIiocbpp\fP\fB[\fP\fIn\fP\fB]);\fP .fi .SH الوصف \fIملاحظة\fP: ربما تريد استخدام دالة الغلاف \fBio_setup\fP(3) التي يوفرها \fIlibaio\fP؛ انظر الإصدارات. .P استدعاء النظام \fBio_submit\fP() يضع \fIn\fP كتلة طلب إدخال/إخراج في قائمة الانتظار للمعالجة في سياق AIO \fIctx_id\fP. يجب أن تكون وسيطة \fIiocbpp\fP مصفوفة من \fIn\fP كتلة تحكم AIO، والتي ستُرسل إلى السياق \fIctx_id\fP. .P هيكل \fIiocb\fP (كتلة التحكم في الإدخال/الإخراج) المُعرّف في \fIlinux/aio_abi.h\fP يُعرّف المعاملات التي تتحكم في عملية الإدخال/الإخراج. .P .in +4n .EX #include \& struct iocb { __u64 aio_data; __u32 PADDED(aio_key, aio_rw_flags); __u16 aio_lio_opcode; __s16 aio_reqprio; __u32 aio_fildes; __u64 aio_buf; __u64 aio_nbytes; __s64 aio_offset; __u64 aio_reserved2; __u32 aio_flags; __u32 aio_resfd; }; .EE .in .P حقول هذا الهيكل هي كالتالي: .TP \fIaio_data\fP تُنسخ هذه البيانات إلى حقل \fIdata\fP من هيكل \fIio_event\fP عند اكتمال الإدخال/الإخراج (انظر \fBio_getevents\fP(2)). .TP \fIaio_key\fP هذا حقل داخلي يستخدمه النواة. لا تُعدّل هذا الحقل بعد استدعاء \fBio_submit\fP(). .TP \fIaio_rw_flags\fP يُعرّف هذا أعلام القراءة/الكتابة الممررة مع الهيكل. القيم الصالحة هي: .RS .TP \fBRWF_APPEND\fP (منذ لينكس 4.16) .\" commit e1fc742e14e01d84d9693c4aca4ab23da65811fb إلحاق البيانات بنهاية الملف. انظر وصف العلم الذي يحمل نفس الاسم في \fBpwritev2\fP(2) وكذلك وصف \fBO_APPEND\fP في \fBopen\fP(2). يُتجاهل حقل \fIaio_offset\fP. لا يتغير إزاحة الملف. .TP \fBRWF_DSYNC\fP (منذ لينكس 4.13) اكتمال عملية الكتابة وفقًا لمتطلبات سلامة بيانات الإدخال/الإخراج المتزامن. انظر وصف العلم الذي يحمل نفس الاسم في \fBpwritev2\fP(2) وكذلك وصف \fBO_DSYNC\fP في \fBopen\fP(2). .TP \fBRWF_HIPRI\fP (منذ لينكس 4.13) طلب ذو أولوية عالية، استطلاع إذا أمكن .TP \fBRWF_NOWAIT\fP (منذ لينكس 4.14) لا تنتظر إذا كان الإدخال/الإخراج سيمنع لعمليات مثل تخصيص كتل الملفات، أو مسح الصفحات المتسخة، أو أقفال المزامنة، أو جهاز كتلة مزدحم داخل النواة. إذا تحقق أي من هذه الشروط، تُعاد كتلة التحكم فورًا بقيمة إرجاع \fB\-EAGAIN\fP في حقل \fIres\fP من هيكل \fIio_event\fP (انظر \fBio_getevents\fP(2)). .TP \fBRWF_SYNC\fP (منذ لينكس 4.13) اكتمال عملية الكتابة وفقًا لمتطلبات سلامة ملف الإدخال/الإخراج المتزامن. انظر وصف العلم الذي يحمل نفس الاسم في \fBpwritev2\fP(2) وكذلك وصف \fBO_SYNC\fP في \fBopen\fP(2). .TP \fBRWF_NOAPPEND\fP (منذ لينكس 6.9) لا تُكرّم علم \fBO_APPEND\fP من \fBopen\fP(2). انظر وصف \fBRWF_NOAPPEND\fP في \fBpwritev2\fP(2). .TP \fBRWF_ATOMIC\fP (منذ لينكس 6.11) اكتب كتلة من البيانات بحيث لا تُقطع الكتابة أبدًا بسبب انقطاع الطاقة أو ما شابه. انظر وصف \fBRWF_ATOMIC\fP في \fBpwritev2\fP(2). للاستخدام مع \fBIOCB_CMD_PWRITEV\fP، الحد الأعلى للمتجه هو \fIstx_atomic_write_segments_max.\fP انظر \fBSTATX_WRITE_ATOMIC\fP ووصف \fIstx_atomic_write_segments_max\fP في \fBstatx\fP(2). .RE .TP \fIaio_lio_opcode\fP يُعرّف هذا نوع الإدخال/الإخراج الذي سينفذه هيكل \fIiocb\fP. القيم الصالحة مُعرّفة بواسطة التعداد المُعرّف في \fIlinux/aio_abi.h\fP: .IP .in +4n .EX enum { IOCB_CMD_PREAD = 0, IOCB_CMD_PWRITE = 1, IOCB_CMD_FSYNC = 2, IOCB_CMD_FDSYNC = 3, IOCB_CMD_POLL = 5, IOCB_CMD_NOOP = 6, IOCB_CMD_PREADV = 7, IOCB_CMD_PWRITEV = 8, }; .EE .in .TP \fIaio_reqprio\fP يُعرّف هذا أولوية الطلبات. .TP \fIaio_fildes\fP واصف الملف الذي سيجري عليه الإدخال/الإخراج. .TP \fIaio_buf\fP هذه هي الخبيئة المستخدمة لنقل البيانات لعملية قراءة أو كتابة. .TP \fIaio_nbytes\fP هذا هو حجم الوسيط الذي يشير إليه \fIaio_buf\fP. .TP \fIaio_offset\fP هذه هي إزاحة الملف التي ستُجرى عندها عملية الإدخال/الإخراج. .TP \fIaio_flags\fP هذه مجموعة الأعلام المرتبطة بهيكل \fIiocb\fP. القيم الصالحة هي: .RS .TP \fBIOCB_FLAG_RESFD\fP يجب أن يشير التحكم في الإدخال/الإخراج غير المتزامن إلى واصف الملف المذكور في \fIaio_resfd\fP عند الاكتمال. .TP \fBIOCB_FLAG_IOPRIO\fP (منذ لينكس 4.18) .\" commit d9a08a9e616beeccdbd0e7262b7225ffdfa49e92 فسّر حقل \fIaio_reqprio\fP كقيمة \fBIOPRIO_VALUE\fP كما هو معرّف في \fIlinux/ioprio.h\fP. .RE .TP \fIaio_resfd\fP وصف الملف للإشارة عند إكمال الإدخال/الإخراج غير المتزامن. .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBio_submit\fP() عدد كتل \fIiocb\fP المُرسلة (قد يكون أقل من \fIn\fP، أو 0 إذا كان \fIn\fP صفرًا). .P عند الخطأ، تُعاد القيمة \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEAGAIN\fP الموارد المتاحة غير كافية لطابور أي كتل \fIiocb\fP. .TP \fBEBADF\fP وصف الملف المحدد في أول \fIiocb\fP غير صالح. .TP \fBEFAULT\fP إحدى بنيات البيانات تشير إلى بيانات غير صالحة. .TP \fBEINVAL\fP سياق AIO المحدد بواسطة \fIctx_id\fP غير صالح. .TP \fBEINVAL\fP \fIn\fP أقل من 0. .TP \fBEINVAL\fP كتلة \fIiocb\fP عند \fI*iocbpp[0]\fP غير مهيأة بشكل صحيح. .TP \fBEINVAL\fP العملية المحددة غير صالحة لوصف الملف في \fIiocb\fP. .TP \fBEINVAL\fP القيمة في حقل \fIaio_reqprio\fP غير صالحة. .TP \fBENOSYS\fP \fBio_submit\fP() غير مطبّقة على هذه البنية. .TP \fBEPERM\fP حقل \fIaio_reqprio\fP مضبوط بالفئة \fBIOPRIO_CLASS_RT\fP، لكن سياق الإرسال لا يمتلك القدرة \fBCAP_SYS_ADMIN\fP. .SH الإصدارات توفر .UR https://pagure.io/libaio \fIlibaio\fP .UE دالة تغليف تحمل الاسم نفسه، ولكن بنموذج أولي وقيمة إرجاع مختلفين. من المرجح أنك تريد استخدام دالة التغليف تلك. .SH المعايير لينكس. .SH التاريخ لينكس 2.5. .SH "انظر أيضًا" \fBio_cancel\fP(2), \fBio_destroy\fP(2), \fBio_getevents\fP(2), \fBio_setup\fP(2), \fBio_submit\fP(3), \fBaio\fP(7) .\" .SH AUTHOR .\" Kent Yoder. .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .