.\" -*- 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_receive 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم mq_receive, mq_timedreceive \- استقبال رسالة من طابور رسائل .SH المكتبة مكتبة الوقت الحقيقي (\fIlibrt\fP،\ \fI\-lrt\fP) .SH موجز .nf \fB#include \fP .P \fBssize_t mq_receive(\fPsize_t msg_len; \fB mqd_t \fP\fImqdes\fP\fB, 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 \fBssize_t mq_timedreceive(\fPsize_t msg_len; \fB mqd_t \fP\fImqdes\fP\fB, char *restrict \fP\fImsg_ptr\fP\fB[\fP\fImsg_len\fP\fB],\fP \fB size_t \fP\fImsg_len\fP\fB, unsigned int *restrict \fP\fImsg_prio\fP\fB,\fP \fB const struct timespec *restrict \fP\fIabs_timeout\fP\fB);\fP .fi .P .ad l .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBmq_timedreceive\fP(): .nf _POSIX_C_SOURCE >= 200112L .fi .SH الوصف \fBmq_receive\fP() تزيل أقدم رسالة ذات الأولوية الأعلى من طابور الرسائل المشار إليه بواصف طابور الرسائل \fImqdes\fP، وتضعها في المخزن المؤقت المشار إليه بـ \fImsg_ptr\fP. تحدد الوسيطة \fImsg_len\fP حجم المخزن المؤقت المشار إليه بـ \fImsg_ptr\fP؛ يجب أن يكون هذا أكبر من أو يساوي سمة \fImq_msgsize\fP للطابور (انظر \fBmq_getattr\fP(3)). إذا لم يكن \fImsg_prio\fP فارغًا، فسيُستخدم المخزن المؤقت الذي يشير إليه لإرجاع الأولوية المرتبطة بالرسالة المستلمة. .P إذا كان الطابور فارغًا، فبشكل مبدئي، \fBmq_receive\fP() تُحجب حتى تصبح رسالة متاحة، أو تُقاطع الاستدعاء بواسطة معالج إشارة. إذا كانت علامة \fBO_NONBLOCK\fP مفعلة لوصف طابور الرسائل، فبدلاً من ذلك، يفشل الاستدعاء فورًا مع الخطأ \fBEAGAIN\fP. .P \fBmq_timedreceive\fP() تتصرف تمامًا مثل \fBmq_receive\fP()، باستثناء أنه إذا كان الطابور فارغًا ولم تكن علامة \fBO_NONBLOCK\fP مفعلة لوصف طابور الرسائل، فإن \fIabs_timeout\fP يشير إلى بنية تحدد المدة التي سيُحجب فيها الاستدعاء. هذه القيمة هي مهلة مطلقة بالثواني والنانوثانية منذ الحقبة، 1970\-01\-01 00:00:00 +0000 (UTC)، محددة في بنية \fBtimespec\fP(3). .P إذا لم تكن رسالة متاحة، وكانت المهلة قد انتهت بالفعل بحلول وقت الاستدعاء، \fBmq_timedreceive\fP() تُرجع فورًا. .SH "قيمة الإرجاع" عند النجاح، \fBmq_receive\fP() و \fBmq_timedreceive\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_receive\fP()، \fBmq_timedreceive\fP() T} سلامة الخيوط MT\-Safe .TE .SH الإصدارات على لينكس، \fBmq_timedreceive\fP() هي استدعاء نظام، و \fBmq_receive\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_send\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 .