.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993, Giorgio Ciucci .\" Copyright 2004-2005, 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 msgctl 2 "11 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم msgctl \- عمليات التحكم في رسائل System V .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint msgctl(int \fP\fImsqid\fP\fB, int \fP\fIop\fP\fB, struct msqid_ds *\fP\fIbuf\fP\fB);\fP .fi .SH الوصف تنفذ \fBmsgctl\fP() عملية التحكم المحددة بواسطة \fIop\fP على قائمة انتظار رسائل System V بالمعرف \fImsqid\fP. .P يُعرّف هيكل البيانات \fImsqid_ds\fP في \fI\fP كما يلي: .P .in +4n .EX struct msqid_ds { struct ipc_perm msg_perm; /* Ownership and permissions */ time_t msg_stime; /* Time of last msgsnd(2) */ time_t msg_rtime; /* Time of last msgrcv(2) */ time_t msg_ctime; /* Time of creation or last modification by msgctl() */ unsigned long msg_cbytes; /* # of bytes in queue */ msgqnum_t msg_qnum; /* # number of messages in queue */ msglen_t msg_qbytes; /* Maximum # of bytes in queue */ pid_t msg_lspid; /* PID of last msgsnd(2) */ pid_t msg_lrpid; /* PID of last msgrcv(2) */ }; .EE .in .P حقول هيكل \fImsqid_ds\fP هي كما يلي: .TP 11 \fImsg_perm\fP هذا هيكل \fIipc_perm\fP (انظر أدناه) يحدد أذونات الوصول إلى قائمة انتظار الرسائل. .TP \fImsg_stime\fP وقت آخر استدعاء نظام \fBmsgsnd\fP(2). .TP \fImsg_rtime\fP وقت آخر استدعاء نظام \fBmsgrcv\fP(2). .TP \fImsg_ctime\fP وقت إنشاء القائمة أو وقت آخر عملية \fBIPC_SET\fP لـ \fBmsgctl\fP(). .TP \fImsg_cbytes\fP عدد البايتات في جميع الرسائل الموجودة حالياً في قائمة انتظار الرسائل. هذا امتداد لينكس غير قياسي غير محدد في POSIX. .TP \fImsg_qnum\fP عدد الرسائل الموجودة حالياً في قائمة انتظار الرسائل. .TP \fImsg_qbytes\fP الحد الأقصى لعدد بايتات نص الرسالة المسموح بها في قائمة انتظار الرسائل. .TP \fImsg_lspid\fP معرف العملية التي نفذت آخر استدعاء نظام \fBmsgsnd\fP(2). .TP \fImsg_lrpid\fP معرف العملية التي نفذت آخر استدعاء نظام \fBmsgrcv\fP(2). .P بنية \fIipc_perm\fP مُعرفة كالتالي (الحقول المميزة قابلة للضبط باستخدام \fBIPC_SET\fP): .P .in +4n .EX struct ipc_perm { key_t __key; /* Key supplied to msgget(2) */ uid_t \f[B]uid\fR; /* Effective UID of owner */ gid_t \f[B]gid\fR; /* Effective GID of owner */ uid_t cuid; /* Effective UID of creator */ gid_t cgid; /* Effective GID of creator */ unsigned short \f[B]mode\fR; /* Permissions */ unsigned short __seq; /* Sequence number */ }; .EE .in .P تحدد أقل 9 بتات أهمية من حقل \fImode\fP لهيكل \fIipc_perm\fP أذونات الوصول إلى قائمة انتظار الرسائل. بتات الأذونات هي كما يلي: .TS l l. 0400 مقروء من المستخدم 0200 الكتابة بواسطة المستخدم 0040 مقروء من المجموعة 0020 الكتابة بواسطة المجموعة 0004 مقروء من الآخرين 0002 الكتابة بواسطة الآخرين .TE .P البتات 0100 و 0010 و 0001 (بتات التنفيذ) غير مستخدمة من قبل النظام. .P القيم الصالحة لـ \fIop\fP هي: .TP \fBIPC_STAT\fP ينسخ المعلومات من هيكل بيانات النواة المرتبط بـ \fImsqid\fP إلى هيكل \fImsqid_ds\fP المشار إليه بواسطة \fIbuf\fP. يجب أن يمتلك المتصل إذن قراءة على قائمة انتظار الرسائل. .TP \fBIPC_SET\fP يكتب قيم بعض أعضاء هيكل \fImsqid_ds\fP المشار إليه بواسطة \fIbuf\fP إلى هيكل بيانات النواة المرتبط بقائمة انتظار الرسائل هذه، مع تحديث عضوه \fImsg_ctime\fP أيضًا. .IP يتم تحديث الأعضاء التالية من الهيكل: \fImsg_qbytes\fP و \fImsg_perm.uid\fP و \fImsg_perm.gid\fP و (أقل 9 بتات أهمية من) \fImsg_perm.mode\fP. .IP يجب أن يتطابق UID الفعال للعملية المستدعية مع المالك (\fImsg_perm.uid\fP) أو المنشئ (\fImsg_perm.cuid\fP) لقائمة الرسائل، أو يجب أن تكون العملية المستدعية مميزة. الامتياز المناسب (لينكس: القدرة \fBCAP_SYS_RESOURCE\fP) مطلوب لرفع قيمة \fImsg_qbytes\fP فوق المعامل النظامي \fBMSGMNB\fP. .TP \fBIPC_RMID\fP إزالة قائمة الرسائل فوراً، مع إيقاظ جميع عمليات القراءة والكتابة المنتظرة (مع إرجاع خطأ وتعيين \fIerrno\fP إلى \fBEIDRM\fP). يجب أن تمتلك العملية المستدعية الامتيازات المناسبة أو أن يكون معرف المستخدم الفعال الخاص بها إما معرف منشئ أو مالك قائمة الرسائل. يتم تجاهل الوسيطة الثالثة لـ \fBmsgctl\fP() في هذه الحالة. .TP \fBIPC_INFO\fP (خاص بلينكس) إرجاع معلومات حول حدود ومعاملات قائمة الرسائل على مستوى النظام في البنية المشار إليها بواسطة \fIbuf\fP. هذه البنية من النوع \fImsginfo\fP (وبالتالي، يلزم تحويل النوع)، معرفة في \fI\fP إذا تم تعريف ماكرو اختبار الميزة \fB_GNU_SOURCE\fP: .IP .in +4n .EX struct msginfo { int msgpool; /* Size in kibibytes of buffer pool used to hold message data; unused within kernel */ int msgmap; /* Maximum number of entries in message map; unused within kernel */ int msgmax; /* Maximum number of bytes that can be written in a single message */ int msgmnb; /* Maximum number of bytes that can be written to queue; used to initialize msg_qbytes during queue creation (msgget(2)) */ int msgmni; /* Maximum number of message queues */ int msgssz; /* Message segment size; unused within kernel */ int msgtql; /* Maximum number of messages on all queues in system; unused within kernel */ unsigned short msgseg; /* Maximum number of segments; unused within kernel */ }; .EE .in .IP يمكن تغيير إعدادات \fImsgmni\fP و \fImsgmax\fP و \fImsgmnb\fP عبر ملفات \fI/proc\fP بنفس الاسم؛ انظر \fBproc\fP(5) للتفاصيل. .TP \fBMSG_INFO\fP (خاص بلينكس) إرجاع بنية \fImsginfo\fP تحتوي على نفس المعلومات كما في \fBIPC_INFO\fP، باستثناء أن الحقول التالية تُرجع مع معلومات حول موارد النظام المستهلكة بواسطة قوائم الرسائل: حقل \fImsgpool\fP يُرجع عدد قوائم الرسائل الموجودة حالياً على النظام؛ حقل \fImsgmap\fP يُرجع العدد الإجمالي للرسائل في جميع القوائم على النظام؛ وحقل \fImsgtql\fP يُرجع العدد الإجمالي للبايتات في جميع الرسائل في جميع القوائم على النظام. .TP \fBMSG_STAT\fP (خاص بلينكس) إرجاع بنية \fImsqid_ds\fP كما في \fBIPC_STAT\fP. ومع ذلك، فإن الوسيطة \fImsqid\fP ليست معرف قائمة، بل هي فهرس في المصفوفة الداخلية للنواة التي تحتفظ بمعلومات حول جميع قوائم الرسائل على النظام. .TP \fBMSG_STAT_ANY\fP (خاص بلينكس، منذ لينكس 4.17) إرجاع بنية \fImsqid_ds\fP كما في \fBMSG_STAT\fP. ومع ذلك، لا يتم التحقق من \fImsg_perm.mode\fP للوصول للقراءة لـ \fImsqid\fP مما يعني أن أي مستخدم يمكنه استخدام هذه العملية (تماماً كما يمكن لأي مستخدم قراءة \fI/proc/sysvipc/msg\fP للحصول على نفس المعلومات). .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBIPC_STAT\fP و \fBIPC_SET\fP و \fBIPC_RMID\fP 0. عملية \fBIPC_INFO\fP أو \fBMSG_INFO\fP الناجحة تُرجع فهرس أعلى إدخال مستخدم في المصفوفة الداخلية للنواة التي تسجل معلومات حول جميع قوائم الرسائل. (يمكن استخدام هذه المعلومات مع عمليات \fBMSG_STAT\fP أو \fBMSG_STAT_ANY\fP المتكررة للحصول على معلومات حول جميع القوائم على النظام.) عملية \fBMSG_STAT\fP أو \fBMSG_STAT_ANY\fP الناجحة تُرجع معرف القائمة التي تم إعطاء فهرسها في \fImsqid\fP. .P عند الفشل، يتم إرجاع \-1 وتعيين \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEACCES\fP الوسيطة \fIop\fP تساوي \fBIPC_STAT\fP أو \fBMSG_STAT\fP، لكن العملية المستدعية لا تملك إذن قراءة على قائمة الرسائل \fImsqid\fP، ولا تملك القدرة \fBCAP_IPC_OWNER\fP في مساحة المستخدم التي تحكم مساحة IPC الخاصة بها. .TP \fBEFAULT\fP الوسيطة \fIop\fP لها القيمة \fBIPC_SET\fP أو \fBIPC_STAT\fP، لكن العنوان المشار إليه بواسطة \fIbuf\fP غير قابل للوصول. .TP \fBEIDRM\fP حُذف طابور الرسائل. .TP \fBEINVAL\fP قيمة غير صالحة لـ \fIop\fP أو \fImsqid\fP. أو: لعملية \fBMSG_STAT\fP، قيمة الفهرس المحددة في \fImsqid\fP تشير إلى فتحة مصفوفة غير مستخدمة حالياً. .TP \fBEPERM\fP الوسيطة \fIop\fP لها القيمة \fBIPC_SET\fP أو \fBIPC_RMID\fP، لكن معرف المستخدم الفعال للعملية المستدعية ليس المنشئ (كما هو موجود في \fImsg_perm.cuid\fP) أو المالك (كما هو موجود في \fImsg_perm.uid\fP) لقائمة الرسائل، والمستدعي ليس مميزاً (لينكس: لا يمتلك القدرة \fBCAP_SYS_ADMIN\fP). .TP \fBEPERM\fP تمت محاولة (\fBIPC_SET\fP) لزيادة \fImsg_qbytes\fP فوق المعامل النظامي \fBMSGMNB\fP، لكن المستدعي ليس مميزاً (لينكس: لا يمتلك القدرة \fBCAP_SYS_RESOURCE\fP). .SH المعايير POSIX.1\-2024 XSI. .SH التاريخ .\" SVID does not document the EIDRM error condition. SVr4, SUSv1, POSIX.1\-2001 XSI. .P تمت كتابة عدة حقول في \fIstruct\ msqid_ds\fP كنوع \fIshort\fP تحت لينكس 2.2 وأصبحت \fIlong\fP تحت لينكس 2.4. للاستفادة من هذا، يكفي إعادة الترجمة تحت glibc\-2.1.91 أو أحدث. (تميز النواة بين الاستدعاءات القديمة والجديدة بواسطة علامة \fBIPC_64\fP في \fIop\fP.) .SH ملاحظات تُستخدم عمليات \fBIPC_INFO\fP و \fBMSG_STAT\fP و \fBMSG_INFO\fP بواسطة برنامج \fBipcs\fP(1) لتوفير معلومات حول الموارد المخصصة. في المستقبل، قد يتم تعديل هذه أو نقلها إلى واجهة نظام ملفات \fI/proc\fP. .SH "انظر أيضًا" \fBmsgget\fP(2), \fBmsgrcv\fP(2), \fBmsgsnd\fP(2), \fBcapabilities\fP(7), \fBmq_overview\fP(7), \fBsysvipc\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 .