.\" -*- coding: UTF-8 -*- .\" Copyright 1993, Giorgio Ciucci .\" 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 msgget 2 "11 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم msgget \- الحصول على معرف قائمة رسائل System V .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint msgget(key_t \fP\fIkey\fP\fB, int \fP\fImsgflg\fP\fB);\fP .fi .SH الوصف استدعاء النظام \fBmsgget\fP() يُرجع معرف قائمة رسائل System\ V المرتبط بقيمة الوسيط \fIkey\fP. يمكن استخدامه إما للحصول على معرف قائمة رسائل مُنشأة سابقًا (عندما يكون \fImsgflg\fP صفرًا و \fIkey\fP لا يحمل القيمة \fBIPC_PRIVATE\fP)، أو لإنشاء مجموعة جديدة. .P يتم إنشاء قائمة رسائل جديدة إذا كان \fIkey\fP يحمل القيمة \fBIPC_PRIVATE\fP أو إذا لم يكن \fIkey\fP هو \fBIPC_PRIVATE\fP، ولا توجد قائمة رسائل بالمفتاح \fIkey\fP المحدد، وتم تحديد \fBIPC_CREAT\fP في \fImsgflg\fP. .P إذا حدد \fImsgflg\fP كلاً من \fBIPC_CREAT\fP و \fBIPC_EXCL\fP وكانت قائمة رسائل موجودة بالفعل لـ \fIkey\fP، فإن \fBmsgget\fP() يفشل مع تعيين \fIerrno\fP إلى \fBEEXIST\fP. (هذا مشابه لتأثير الدمج \fBO_CREAT | O_EXCL\fP لـ \fBopen\fP(2).) .P عند الإنشاء، تحدد البتات الأقل أهمية من الوسيط \fImsgflg\fP أذونات قائمة الرسائل. هذه البتات لها نفس التنسيق والدلالات مثل الأذونات المحددة للوسيط \fImode\fP لـ \fBopen\fP(2). (لا تُستخدم أذونات التنفيذ.) .P إذا تم إنشاء قائمة رسائل جديدة، فسيتم تهيئة بنية البيانات المرتبطة بها \fImsqid_ds\fP (انظر \fBmsgctl\fP(2)) كما يلي: .IP \[bu] 3 يتم تعيين \fImsg_perm.cuid\fP و \fImsg_perm.uid\fP إلى معرف المستخدم الفعّال للعملية المستدعية. .IP \[bu] يتم تعيين \fImsg_perm.cgid\fP و \fImsg_perm.gid\fP إلى معرف المجموعة الفعّال للعملية المستدعية. .IP \[bu] يتم تعيين أقل 9 بتات أهمية من \fImsg_perm.mode\fP إلى أقل 9 بتات أهمية من \fImsgflg\fP. .IP \[bu] يتم تعيين \fImsg_qnum\fP و \fImsg_lspid\fP و \fImsg_lrpid\fP و \fImsg_stime\fP و \fImsg_rtime\fP إلى 0. .IP \[bu] يتم تعيين \fImsg_ctime\fP إلى الوقت الحالي. .IP \[bu] يتم تعيين \fImsg_qbytes\fP إلى حد النظام \fBMSGMNB\fP. .P إذا كانت قائمة الرسائل موجودة بالفعل، يتم التحقق من الأذونات، ويتم إجراء فحص لمعرفة ما إذا كانت مُعلّمة للتدمير. .SH "قيمة الإرجاع" عند النجاح، يُرجع \fBmsgget\fP() معرف قائمة الرسائل (عدد صحيح غير سالب). عند الفشل، يتم إرجاع \-1، ويتم تعيين \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEACCES\fP توجد قائمة رسائل لـ \fIkey\fP، لكن العملية المستدعية لا تملك الإذن للوصول إلى القائمة، ولا تملك القدرة \fBCAP_IPC_OWNER\fP في مساحة المستخدم التي تحكم مساحة IPC الخاصة بها. .TP \fBEEXIST\fP تم تحديد \fBIPC_CREAT\fP و \fBIPC_EXCL\fP في \fImsgflg\fP، لكن قائمة رسائل موجودة بالفعل لـ \fIkey\fP. .TP \fBENOENT\fP لا توجد قائمة رسائل لـ \fIkey\fP ولم يحدد \fImsgflg\fP \fBIPC_CREAT\fP. .TP \fBENOMEM\fP يجب إنشاء قائمة رسائل لكن النظام لا يملك ذاكرة كافية لبنية البيانات الجديدة. .TP \fBENOSPC\fP يجب إنشاء قائمة رسائل لكن سيتم تجاوز حد النظام للعدد الأقصى لقوائم الرسائل (\fBMSGMNI\fP). .SH المعايير POSIX.1\-2024 XSI. .SH التاريخ SVr4, SUSv1, POSIX.1\-2001 XSI. .SS لينكس حتى Linux 2.3.20، كان Linux يُرجع \fBEIDRM\fP لـ \fBmsgget\fP() على قائمة رسائل مُجدولة للحذف. .SH ملاحظات \fBIPC_PRIVATE\fP ليس حقل علم بل هو نوع \fIkey_t\fP. إذا تم استخدام هذه القيمة الخاصة لـ \fIkey\fP، يتجاهل استدعاء النظام كل شيء باستثناء أقل 9 بتات أهمية من \fImsgflg\fP وينشئ قائمة رسائل جديدة (عند النجاح). .P التالي هو حد نظام على موارد قائمة الرسائل يؤثر على استدعاء \fBmsgget\fP(): .TP \fBMSGMNI\fP .\" commit 0050ee059f7fc86b1df2527aaa14ed5dc72f9973 حد على مستوى النظام لعدد قوائم الرسائل. قبل Linux 3.19، كانت القيمة المبدئية لهذا الحد تُحسب باستخدام صيغة تعتمد على ذاكرة النظام المتاحة. منذ Linux 3.19، القيمة المبدئية هي 32,000. على Linux، يمكن قراءة هذا الحد وتعديله عبر \fI/proc/sys/kernel/msgmni\fP. .SH العلل ربما كان اختيار الاسم \fBIPC_PRIVATE\fP غير موفق، فاسم \fBIPC_NEW\fP كان سيظهر وظيفتها بشكل أوضح. .SH "انظر أيضًا" \fBmsgctl\fP(2), \fBmsgrcv\fP(2), \fBmsgsnd\fP(2), \fBftok\fP(3), \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 .