.\" -*- coding: UTF-8 -*- .\" Copyright 2002, 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 sigwaitinfo 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم sigwaitinfo, sigtimedwait, rt_sigtimedwait \- انتظار متزامن للإشارات المصفوفة .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint sigwaitinfo(const sigset_t *restrict \fP\fIset\fP\fB,\fP \fB siginfo_t *_Nullable restrict \fP\fIinfo\fP\fB);\fP \fBint sigtimedwait(const sigset_t *restrict \fP\fIset\fP\fB,\fP \fB siginfo_t *_Nullable restrict \fP\fIinfo\fP\fB,\fP \fB const struct timespec *restrict \fP\fItimeout\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBsigwaitinfo\fP(), \fBsigtimedwait\fP(): .nf _POSIX_C_SOURCE >= 199309L .fi .SH الوصف \fBsigwaitinfo\fP() تعلق تنفيذ الخيط المستدعي حتى تصبح إشارة واحدة من \fIset\fP معلقة (إذا كانت إحدى الإشارات في \fIset\fP معلقة بالفعل للخيط المستدعي، فستعود \fBsigwaitinfo\fP() فورًا.) .P \fBsigwaitinfo\fP() تزيل الإشارة من مجموعة الإشارات المعلقة وتعيد رقم الإشارة كنتيجة للدالة. إذا كانت الوسيطة \fIinfo\fP ليست NULL، فسيتم استخدام المخزن المؤقت الذي تشير إليه لإرجاع بنية من النوع \fIsiginfo_t\fP (انظر \fBsigaction\fP(2)) تحتوي على معلومات حول الإشارة. .P إذا كانت إشارات متعددة في \fIset\fP معلقة للمستدعي، يتم تحديد الإشارة التي يسترجعها \fBsigwaitinfo\fP() وفقًا لقواعد الترتيب المعتادة؛ انظر \fBsignal\fP(7) لمزيد من التفاصيل. .P تعمل \fBsigtimedwait\fP() بنفس طريقة \fBsigwaitinfo\fP() تمامًا باستثناء أن لها وسيطة إضافية، \fItimeout\fP، والتي تحدد الفاصل الزمني الذي يتم فيه تعليق الخيط في انتظار إشارة. (سيتم تقريب هذا الفاصل الزمني إلى دقة ساعة النظام، وتأخيرات جدولة النواة تعني أن الفاصل الزمني قد يتجاوز بمقدار صغير.) هذه الوسيطة هي بنية \fBtimespec\fP(3). .P إذا تم تحديد كلا الحقلين من هذه البنية على أنهما 0، يتم إجراء استقصاء: تعود \fBsigtimedwait\fP() فورًا، إما بمعلومات حول إشارة كانت معلقة للمستدعي، أو بخطأ إذا لم تكن أي من الإشارات في \fIset\fP معلقة. .SH "قيمة الإرجاع" عند النجاح، تعيد كل من \fBsigwaitinfo\fP() و \fBsigtimedwait\fP() رقم إشارة (أي قيمة أكبر من الصفر). عند الفشل، تعيد كلتا الاستدعاءتين \-1، مع تعيين \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEAGAIN\fP لم تصبح أي إشارة في \fIset\fP معلقة خلال فترة \fItimeout\fP المحددة لـ \fBsigtimedwait\fP(). .TP \fBEINTR\fP تمت مقاطعة الانتظار بواسطة معالج إشارة؛ انظر \fBsignal\fP(7). (كان هذا المعالج لإشارة غير تلك الموجودة في \fIset\fP.) .TP \fBEINVAL\fP كانت \fItimeout\fP غير صالحة. .SH الإصدارات .SS "الاختلافات بين مكتبة C والنواة" في لينكس، \fBsigwaitinfo\fP() هي دالة مكتبة مطبقة فوق \fBsigtimedwait\fP(). .P دوال التغليف glibc لـ \fBsigwaitinfo\fP() و \fBsigtimedwait\fP() تتجاهل بصمت محاولات انتظار إشارتي الوقت الحقيقي المستخدمتين داخليًا بواسطة تطبيق خيوط NPTL. انظر \fBnptl\fP(7) للتفاصيل. .P .\" كان اسم استدعاء النظام الأصلي في لينكس هو \fBsigtimedwait\fP(). ومع ذلك، مع إضافة إشارات الوقت الحقيقي في لينكس 2.2، لم يعد النوع ذو الحجم الثابت 32 بت \fIsigset_t\fP المدعوم من قبل ذلك الاستدعاء مناسبًا للغرض. وبالتالي، تمت إضافة استدعاء نظام جديد، \fBrt_sigtimedwait\fP()، لدعم نوع \fIsigset_t\fP موسع. يأخذ استدعاء النظام الجديد وسيطة رابعة، \fIsize_t sigsetsize\fP، والتي تحدد الحجم بالبايت لمجموعة الإشارات في \fIset\fP. هذه الوسيطة مطلوبة حاليًا أن تكون قيمتها \fIsizeof(sigset_t)\fP (وإلا ينتج الخطأ \fBEINVAL\fP). دالة التغليف glibc \fBsigtimedwait\fP() تخفي هذه التفاصيل عنا، وتستدعي بشفافية \fBrt_sigtimedwait\fP() عندما توفرها النواة. .SH المعايير POSIX.1\-2024. .SH التاريخ POSIX.1\-2001. .SH ملاحظات في الاستخدام العادي، يقوم البرنامج المستدعي بحظر الإشارات في \fIset\fP عبر استدعاء سابق لـ \fBsigprocmask\fP(2) (بحيث لا يحدث التصرف المبدئي لهذه الإشارات إذا أصبحت معلقة بين الاستدعاءات المتتالية لـ \fBsigwaitinfo\fP() أو \fBsigtimedwait\fP()) ولا ينشئ معالجات لهذه الإشارات. في برنامج متعدد الخيوط، يجب حظر الإشارة في جميع الخيوط، لمنع معالجة الإشارة وفقًا لتصرفها المبدئي في خيط غير الخيط الذي يستدعي \fBsigwaitinfo\fP() أو \fBsigtimedwait\fP()). .P مجموعة الإشارات المعلقة لخيط معين هي اتحاد مجموعة الإشارات المعلقة تحديدًا لذلك الخيط ومجموعة الإشارات المعلقة للعملية ككل (انظر \fBsignal\fP(7)). .P محاولات انتظار \fBSIGKILL\fP و \fBSIGSTOP\fP يتم تجاهلها بصمت. .P إذا كانت خيوط متعددة من عملية محظورة في انتظار نفس الإشارة (الإشارات) في \fBsigwaitinfo\fP() أو \fBsigtimedwait\fP()، فسيستقبل بالضبط واحد من الخيوط الإشارة فعليًا إذا أصبحت معلقة للعملية ككل؛ أي من الخيوط يستقبل الإشارة غير محدد. .P لا يمكن استخدام \fBsigwaitinfo\fP() أو \fBsigtimedwait\fP() لاستقبال الإشارات المولدة بشكل متزامن، مثل إشارة \fBSIGSEGV\fP الناتجة عن الوصول إلى عنوان ذاكرة غير صالح أو إشارة \fBSIGFPE\fP الناتجة عن خطأ حسابي. يمكن التقاط هذه الإشارات فقط عبر معالج إشارة. .P يترك POSIX معنى القيمة NULL للوسيطة \fItimeout\fP لـ \fBsigtimedwait\fP() غير محدد، مما يسمح بإمكانية أن يكون لها نفس معنى استدعاء \fBsigwaitinfo\fP()، وبالفعل هذا ما يتم فعله في لينكس. .SH "انظر أيضًا" \fBkill\fP(2), \fBsigaction\fP(2), \fBsignal\fP(2), \fBsignalfd\fP(2), \fBsigpending\fP(2), \fBsigprocmask\fP(2), \fBsigqueue\fP(3), \fBsigsetops\fP(3), \fBsigwait\fP(3), \fBtimespec\fP(3), \fBsignal\fP(7), \fBtime\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 .