.\" -*- 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_getattr 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم mq_getattr, mq_setattr \- جلب/تعيين خصائص طابور الرسائل .SH المكتبة مكتبة الوقت الحقيقي (\fIlibrt\fP،\ \fI\-lrt\fP) .SH موجز .nf \fB#include \fP .P \fBint mq_getattr(mqd_t \fP\fImqdes\fP\fB, struct mq_attr *\fP\fIattr\fP\fB);\fP \fBint mq_setattr(mqd_t \fP\fImqdes\fP\fB, const struct mq_attr *restrict \fP\fInewattr\fP\fB,\fP \fB struct mq_attr *restrict \fP\fIoldattr\fP\fB);\fP .fi .SH الوصف \fBmq_getattr\fP() و \fBmq_setattr\fP() تجلب وتعدل على التوالي خصائص طابور الرسائل المشار إليه بواسطة واصف طابور الرسائل \fImqdes\fP. .P \fBmq_getattr\fP() تُرجع بنية \fImq_attr\fP في المخزن المؤقت المشار إليه بواسطة \fIattr\fP. هذه البنية تُعرف كالتالي: .P .in +4n .EX struct mq_attr { long mq_flags; /* الرايات: 0 أو O_NONBLOCK */ long mq_maxmsg; /* الحد الأقصى لعدد الرسائل في الطابور */ long mq_msgsize; /* الحد الأقصى لحجم الرسالة (بالبايت) */ long mq_curmsgs; /* عدد الرسائل الموجودة في الطابور حالياً */ }; .EE .in .P حقل \fImq_flags\fP يحتوي على أعلام مرتبطة بوصف طابور الرسائل المفتوح. هذا الحقل يُهيأ عندما يُنشأ الطابور بواسطة \fBmq_open\fP(3). العلم الوحيد الذي يمكن أن يظهر في هذا الحقل هو \fBO_NONBLOCK\fP. .P حقل \fImq_maxmsg\fP و \fImq_msgsize\fP يُضبطان عندما يُنشأ طابور الرسائل بواسطة \fBmq_open\fP(3). حقل \fImq_maxmsg\fP هو حد أعلى لعدد الرسائل التي يمكن وضعها في الطابور باستخدام \fBmq_send\fP(3). حقل \fImq_msgsize\fP هو حد أعلى لحجم الرسائل التي يمكن وضعها في الطابور. كلا هذين الحقلين يجب أن يكون لهما قيمة أكبر من الصفر. ملفا \fI/proc\fP يضعان سقوفًا لقيم هذه الحقول موصوفان في \fBmq_overview\fP(7). .P حقل \fImq_curmsgs\fP يُرجع عدد الرسائل المحتجزة حاليًا في الطابور. .P \fBmq_setattr\fP() يضبط خصائص طابور الرسائل باستخدام المعلومات المقدمة في بنية \fImq_attr\fP المشار إليها بواسطة \fInewattr\fP. الخاصية الوحيدة التي يمكن تعديلها هي ضبط العلم \fBO_NONBLOCK\fP في \fImq_flags\fP. الحقول الأخرى في \fInewattr\fP تُتجاهل. إذا كان حقل \fIoldattr\fP ليس NULL، فإن المخزن المؤقت الذي يشير إليه يُستخدم لإرجاع بنية \fImq_attr\fP تحتوي على نفس المعلومات التي تُرجعها \fBmq_getattr\fP(). .SH "قيمة الإرجاع" عند النجاح \fBmq_getattr\fP() و \fBmq_setattr\fP() يُرجعان 0؛ عند الخطأ، يُرجع \-1، مع ضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEBADF\fP واصف قائمة رسائل المحدد في \fImqdes\fP غير صالح. .TP \fBEINVAL\fP \fInewattr\->mq_flags\fP احتوى على بتات مضبوطة غير \fBO_NONBLOCK\fP. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBmq_getattr\fP(), \fBmq_setattr\fP() T} سلامة الخيوط MT\-Safe .TE .SH الإصدارات على لينكس، \fBmq_getattr\fP() و \fBmq_setattr\fP() هما دالتا مكتبة مبنيتان فوق استدعاء النظام \fBmq_getsetattr\fP(2). .SH المعايير POSIX.1\-2008. .SH التاريخ POSIX.1\-2001. .SH أمثلة البرنامج أدناه يمكن استخدامه لعرض القيم المبدئية \fImq_maxmsg\fP و \fImq_msgsize\fP التي تُسند إلى طابور رسائل يُنشأ باستدعاء \fBmq_open\fP(3) حيث معامل \fIattr\fP هو NULL. إليك مثال لتشغيل البرنامج: .P .in +4n .EX $\fB ./a.out /testq\fP; Maximum # of messages on queue: 10 Maximum message size: 8192 .EE .in .P منذ لينكس 3.5، ملفات \fI/proc\fP التالية (الموصوفة في \fBmq_overview\fP(7)) يمكن استخدامها للتحكم في المبدئيات: .P .in +4n .EX $\fB uname \-sr\fP; Linux 3.8.0 $\fB cat /proc/sys/fs/mqueue/msg_default\fP; 10 $\fB cat /proc/sys/fs/mqueue/msgsize_default\fP; 8192 .EE .in .SS "مصدر البرنامج" .\" SRC BEGIN (mq_getattr.c) \& .EX #include #include #include #include #include #include #include \& int main(int argc, char *argv[]) { mqd_t mqd; struct mq_attr attr; \& if (argc != 2) { fprintf(stderr, "Usage: %s mq\-name\[rs]n", argv[0]); exit(EXIT_FAILURE); } \& mqd = mq_open(argv[1], O_CREAT | O_EXCL, 0600, NULL); if (mqd == (mqd_t) \-1) err(EXIT_FAILURE, "mq_open"); \& if (mq_getattr(mqd, &attr) == \-1) err(EXIT_FAILURE, "mq_getattr"); \& printf("Maximum # of messages on queue: %ld\[rs]n", attr.mq_maxmsg); printf("Maximum message size: %ld\[rs]n", attr.mq_msgsize); \& if (mq_unlink(argv[1]) == \-1) err(EXIT_FAILURE, "mq_unlink"); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBmq_close\fP(3), \fBmq_notify\fP(3), \fBmq_open\fP(3), \fBmq_receive\fP(3), \fBmq_send\fP(3), \fBmq_unlink\fP(3), \fBmq_overview\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 .