.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2006, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH mq_send 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم mq_send, mq_timedsend \- إرسال رسالة إلى طابور رسائل .SH المكتبة مكتبة الوقت الحقيقي (\fIlibrt\fP،\ \fI\-lrt\fP) .SH موجز .nf \fB#include \fP .P \fBint mq_send(\fPsize_t msg_len; \fB mqd_t \fP\fImqdes\fP\fB, const char \fP\fImsg_ptr\fP\fB[\fP\fImsg_len\fP\fB],\fP \fB size_t \fP\fImsg_len\fP\fB, unsigned int \fP\fImsg_prio\fP\fB);\fP .P \fB#include \fP \fB#include \fP .P \fBint mq_timedsend(\fPsize_t msg_len; \fB mqd_t \fP\fImqdes\fP\fB, const char \fP\fImsg_ptr\fP\fB[\fP\fImsg_len\fP\fB],\fP \fB size_t \fP\fImsg_len\fP\fB, unsigned int \fP\fImsg_prio\fP\fB,\fP \fB const struct timespec *\fP\fIabs_timeout\fP\fB);\fP .fi .P .ad l .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBmq_timedsend\fP(): .nf _POSIX_C_SOURCE >= 200112L .fi .SH الوصف تضيف \fBmq_send\fP() الرسالة المشار إليها بواسطة \fImsg_ptr\fP إلى طابور الرسائل المشار إليه بواسطة واصف طابور الرسائل \fImqdes\fP. تُحدد الوسيطة \fImsg_len\fP طول الرسالة المشار إليها بواسطة \fImsg_ptr\fP؛ يجب أن يكون هذا الطول أقل من أو يساوي سمة \fImq_msgsize\fP للطابور. يُسمح بالرسائل ذات الطول الصفري. .P الوسيطة \fImsg_prio\fP هي عدد صحيح غير سالب يُحدد أولوية هذه الرسالة. تُوضع الرسائل في الطابور بترتيب تنازلي للأولوية، مع وضع الرسائل الأحدث من نفس الأولوية بعد الرسائل الأقدم ذات الأولوية نفسها. انظر \fBmq_overview\fP(7) للحصول على تفاصيل حول نطاق أولوية الرسالة. .P إذا كان طابور الرسائل ممتلئًا بالفعل (أي أن عدد الرسائل في الطابور يساوي سمة \fImq_maxmsg\fP للطابور)، فبشكل مبدئي، تُحجب \fBmq_send\fP() حتى يتوفر مساحة كافية للسماح بإدراج الرسالة في الطابور، أو حتى تُقاطع الاستدعاء بواسطة معالج إشارة. إذا كانت العلامة \fBO_NONBLOCK\fP مُفعّلة لوصف طابور الرسائل، فبدلاً من ذلك، يفشل الاستدعاء فورًا مع الخطأ \fBEAGAIN\fP. .P تتصرف \fBmq_timedsend\fP() تمامًا مثل \fBmq_send\fP()، باستثناء أنه إذا كان الطابور ممتلئًا والعلامة \fBO_NONBLOCK\fP غير مُفعّلة لوصف طابور الرسائل، فإن \fIabs_timeout\fP يشير إلى بنية تُحدد المدة التي سيُحجب فيها الاستدعاء. هذه القيمة هي مهلة مطلقة بالثواني والنانوثانية منذ العصر، 1970\-01\-01 00:00:00 +0000 (UTC)، مُحددة في بنية \fBtimespec\fP(3). .P إذا كان طابور الرسائل ممتلئًا، وكانت المهلة قد انتهت بالفعل بحلول وقت الاستدعاء، فإن \fBmq_timedsend\fP() تعود فورًا. .SH "قيمة الإرجاع" عند النجاح، تعود \fBmq_send\fP() و \fBmq_timedsend\fP() بصفر؛ عند الخطأ، يُعاد \-1، مع ضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEAGAIN\fP كان الطابور ممتلئًا، ووُضعت العلامة \fBO_NONBLOCK\fP لوصف طابور الرسائل المشار إليه بواسطة \fImqdes\fP. .TP \fBEBADF\fP الواصف المُحدد في \fImqdes\fP كان غير صالح أو لم يُفتح للكتابة. .TP \fBEINTR\fP قُطع الاستدعاء بواسطة معالج إشارات؛ انظر \fBsignal\fP(7). .TP \fBEINVAL\fP كان الاستدعاء سيعاق (blocked)، وكان \fIabs_timeout\fP غير صالح، إما لأن \fItv_sec\fP كان أقل من الصفر، أو لأن \fItv_nsec\fP كان أقل من الصفر أو أكبر من 1000 مليون. .TP \fBEMSGSIZE\fP كان \fImsg_len\fP أكبر من سمة \fImq_msgsize\fP لطابور الرسائل. .TP \fBETIMEDOUT\fP انتهت مهلة الاستدعاء قبل التمكن من نقل الرسالة. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBmq_send\fP()، \fBmq_timedsend\fP() T} سلامة الخيوط MT\-Safe .TE .SH الإصدارات في لينكس، \fBmq_timedsend\fP() هي استدعاء نظام، و \fBmq_send\fP() هي دالة مكتبة مبنية فوق ذلك الاستدعاء. .SH المعايير POSIX.1\-2008. .SH التاريخ POSIX.1\-2001. .SH "انظر أيضًا" \fBmq_close\fP(3)، \fBmq_getattr\fP(3)، \fBmq_notify\fP(3)، \fBmq_open\fP(3)، \fBmq_receive\fP(3)، \fBmq_unlink\fP(3)، \fBtimespec\fP(3)، \fBmq_overview\fP(7)، \fBtime\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .