Scroll to navigation

sem_open(3) Library Functions Manual sem_open(3)

الاسم

sem_open - تهيئة وفتح سيمافور مسمى

المكتبة

مكتبة مسالك POSIX (libpthread، -lpthread)

موجز

#include <fcntl.h>           /* لثوابت O_* */
#include <sys/stat.h>        /* لثوابت الوضع */
#include <semaphore.h>
sem_t *sem_open(const char *name, int oflag, ...
                /* mode_t mode, unsigned int value */ );

الوصف

تنشئ sem_open() سيمافور POSIX جديدًا أو تفتح سيمافورًا موجودًا. يُعرَّف السيمافور بواسطة name. لتفاصيل بناء name، انظر sem_overview(7).

يحدد المعامل oflag الأعلام التي تتحكم في عملية الاستدعاء. (يمكن الحصول على تعريفات قيم الأعلام بتضمين <fcntl.h>.) إذا حُدد O_CREAT في oflag، يُنشأ السيمافور إذا لم يكن موجودًا بالفعل. يُضبط مالك السيمافور (معرف المستخدم) على معرف المستخدم الفعّال للعملية المستدعية. تُضبط ملكية المجموعة (معرف المجموعة) على معرف المجموعة الفعّال للعملية المستدعية. إذا حُدد كل من O_CREAT وO_EXCL في oflag، يُرجع خطأ إذا كان سيمافور بالاسم name موجودًا بالفعل.

إذا حُدد O_CREAT في oflag، يجب توفير معاملين إضافيين. يحدد المعامل mode الصلاحيات التي تُوضع على السيمافور الجديد، كما في open(2). (يمكن الحصول على التعريفات الرمزية لبتات الصلاحيات بتضمين <sys/stat.h>.) تُقنَّع إعدادات الصلاحيات مقابل umask العملية. يجب منح صلاحية القراءة والكتابة لكل فئة من المستخدمين التي ستصل إلى السيمافور. يحدد المعامل value القيمة المبدئية للسيمافور الجديد. إذا حُدد O_CREAT وكان سيمافور بالاسم name موجودًا بالفعل، يُتجاهل mode وvalue.

قيمة الإرجاع

عند النجاح، تُرجع sem_open() عنوان السيمافور الجديد؛ يُستخدم هذا العنوان عند استدعاء دوال أخرى متعلقة بالسيمافور. عند الخطأ، تُرجع sem_open() SEM_FAILED، مع ضبط errno للإشارة إلى الخطأ.

الأخطاء

السيمافور موجود، لكن ليس لدى المستدعي صلاحية فتحه.
حُدد كل من O_CREAT وO_EXCL في oflag، لكن سيمافور بهذا name موجود بالفعل.
كان value أكبر من SEM_VALUE_MAX.
يتكون name من "/" فقط، دون أحرف أخرى بعده.
وُصل إلى الحد الأقصى لواصفات الملفات المفتوحة لكل عملية.
الاسم name كان طويلاً جداً.
وُصل إلى الحد الأقصى لإجمالي عدد الملفات المفتوحة على مستوى النظام.
لم يُحدد علم O_CREAT في oflag ولا يوجد سيمافور بهذا name؛ أو حُدد O_CREAT، لكن name لم يكن جيد التكوين.
ذاكرة غير كافية.

السمات

للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).

الواجهة السمة القيمة
sem_open() سلامة الخيوط MT-Safe

المعايير

POSIX.1-2008.

التاريخ

POSIX.1-2001.

انظر أيضًا

sem_close(3), sem_getvalue(3), sem_post(3), sem_unlink(3), sem_wait(3), sem_overview(7)

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

8 فبراير 2026 صفحات دليل لينكس (لم تصدر بعد)