sigpending(2)

الاسم
sigpending, rt_sigpending - فحص الإشارات المعلقة

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <signal.h>

int sigpending(sigset_t *set);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

sigpending():
    _POSIX_C_SOURCE

الوصف
ترجع sigpending() مجموعة الإشارات المعلقة للتسليم إلى الخيط المستدعي (أي الإشارات التي أُثيرت أثناء كونها محجوبة). يُعاد قناع الإشارات المعلقة في set.

قيمة الإرجاع
ترجع sigpending() 0 عند النجاح. عند الفشل، تُعاد -1 ويُضبط errno للإشارة إلى الخطأ.

الأخطاء

EFAULT
    يشير set إلى ذاكرة ليست جزءًا صالحًا من مساحة عنوان العملية.

المعايير
POSIX.1-2024.

التاريخ
POSIX.1-2001.

  الاختلافات بين مكتبة C والنواة
كان اسم استدعاء النظام الأصلي في لينكس هو sigpending(). ومع ذلك، مع إضافة الإشارات الزمنية الحقيقية في لينكس 2.2، لم تعد الوسيطة sigset_t ذات الحجم الثابت 32 بت التي يدعمها ذلك الاستدعاء مناسبة للغرض. وبالتالي، أُضيف استدعاء نظام جديد، rt_sigpending()، لدعم نوع sigset_t الموسع. يأخذ استدعاء النظام الجديد وسيطة ثانية، size_t sigsetsize، والتي تحدد الحجم بالبايت لمجموعة الإشارات في set. تخفي دالة الغلاف sigpending() من glibc هذه التفاصيل عنا، وتستدعي rt_sigpending() بشفافية عندما يوفره النواة.

ملاحظات
انظر sigsetops(3) للحصول على تفاصيل حول معالجة مجموعات الإشارات.

إذا كانت الإشارة محجوبة ولها تصرف "مُتجاهَل"، فإنها لا تُضاف إلى قناع الإشارات المعلقة عند توليدها.

مجموعة الإشارات المعلقة لخيط هي اتحاد مجموعة الإشارات المعلقة لذلك الخيط ومجموعة الإشارات المعلقة للعملية ككل؛ انظر signal(7).

يكون لدى الابن المنشأ عبر fork(2) في البداية مجموعة إشارات معلقة فارغة؛ وتُحفَظ مجموعة الإشارات المعلقة عبر عملية execve(2).

العلل
حتى glibc 2.2.1 وما قبله، يوجد خطأ في دالة الغلاف لـ sigpending() مما يعني أن المعلومات حول الإشارات الزمنية الحقيقية المعلقة لا تُعاد بشكل صحيح.

انظر أيضًا
kill(2), sigaction(2), signal(2), sigprocmask(2), sigsuspend(2), sigsetops(3), signal(7)

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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