.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 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 sigvec 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم sigvec، sigblock، sigsetmask، siggetmask، sigmask \- واجهة برمجة تطبيقات الإشارات لنظام BSD .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fB[[deprecated]] int sigvec(int \fP\fIsig\fP\fB, const struct sigvec *\fP\fIvec\fP\fB,\fP \fB struct sigvec *\fP\fIovec\fP\fB);\fP .P \fB[[deprecated]] int sigmask(int \fP\fIsignum\fP\fB);\fP .P \fB[[deprecated]] int sigblock(int \fP\fImask\fP\fB);\fP \fB[[deprecated]] int sigsetmask(int \fP\fImask\fP\fB);\fP \fB[[deprecated]] int siggetmask(void);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P كافة الدوال الموضحة أعلاه: .nf منذ glibc 2.19: _DEFAULT_SOURCE glibc 2.19 وما قبله: _BSD_SOURCE .fi .SH الوصف تُوفَّر هذه الدوال في glibc كواجهة توافق للبرامج التي تستخدم واجهة برمجة تطبيقات الإشارات التاريخية لنظام BSD. هذه الواجهة قديمة: يجب على التطبيقات الجديدة استخدام واجهة برمجة تطبيقات الإشارات لنظام POSIX (\fBsigaction\fP(2)، \fBsigprocmask\fP(2)، إلخ). .P تضبط الدالة \fBsigvec\fP() و/أو تحصل على معالجة الإشارة \fIsig\fP (مثل \fBsigaction\fP(2) في POSIX). إذا لم يكن \fIvec\fP فارغًا، فإنه يشير إلى بنية \fIsigvec\fP التي تُعرِّف المعالجة الجديدة لـ \fIsig\fP. إذا لم يكن \fIovec\fP فارغًا، فإنه يشير إلى بنية \fIsigvec\fP تُستخدم لإرجاع المعالجة السابقة لـ \fIsig\fP. للحصول على المعالجة الحالية لـ \fIsig\fP دون تغييرها، يُحدد NULL لـ \fIvec\fP ومؤشر غير فارغ لـ \fIovec\fP. .P لا يمكن تغيير الإجراءات المقررة لـ \fBSIGKILL\fP و \fBSIGSTOP\fP. .P بنية \fIsigvec\fP لها الشكل التالي: .P .in +4n .EX struct sigvec { void (*sv_handler)(int); /* معالجة الإشارة */ int sv_mask; /* الإشارات المراد حظرها في المعالج */ int sv_flags; /* العلامات */ }; .EE .in .P يُحدد الحقل \fIsv_handler\fP معالجة الإشارة، ويكون إما: عنوان دالة معالج الإشارة؛ أو \fBSIG_DFL\fP، مما يعني تطبيق المعالجة المبدئية للإشارة؛ أو \fBSIG_IGN\fP، مما يعني تجاهل الإشارة. .P إذا حدد \fIsv_handler\fP عنوان معالج إشارة، فإن \fIsv_mask\fP يُحدد قناعًا من الإشارات المطلوب حظرها أثناء تنفيذ المعالج. بالإضافة إلى ذلك، تُحظر أيضًا الإشارة التي استُدعي المعالج من أجلها. تُتجاهل محاولات حظر \fBSIGKILL\fP أو \fBSIGSTOP\fP بصمت. .P إذا حدد \fIsv_handler\fP عنوان معالج إشارة، فإن الحقل \fIsv_flags\fP يُحدد أعلامًا تتحكم فيما يحدث عند استدعاء المعالج. قد يحتوي هذا الحقل على صفر أو أكثر من الأعلام التالية: .TP \fBSV_INTERRUPT\fP إذا قاطع معالج الإشارة استدعاء نظام حاجز، فعند العودة من المعالج لا يُعاد تشغيل استدعاء النظام: بل يفشل مع الخطأ \fBEINTR\fP. إذا لم يُحدد هذا العلم، فتُعاد تشغيل استدعاءات النظام مبدئيًا. .TP \fBSV_RESETHAND\fP إعادة تعيين معالجة الإشارة إلى المبدئي قبل استدعاء معالج الإشارة. إذا لم يُحدد هذا العلم، يبقى المعالج مُثبتًا حتى يُزال صراحةً باستدعاء لاحق لـ \fBsigvec\fP() أو حتى تنفذ العملية \fBexecve\fP(2). .TP \fBSV_ONSTACK\fP معالجة الإشارة على مكدس الإشارات البديل (المُثبت تاريخيًا تحت BSD باستخدام الدالة المهملة \fBsigstack\fP()؛ البديل في POSIX هو \fBsigaltstack\fP(2)). .P تنشئ الكلية \fBsigmask\fP() وتُعيد "قناع إشارة" لـ \fIsignum\fP. على سبيل المثال، يمكننا تهيئة الحقل \fIvec.sv_mask\fP المُعطى لـ \fBsigvec\fP() باستخدام كود مثل التالي: .P .in +4n .EX vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT); /* حظر إشارتي SIGQUIT وSIGABRT أثناء تنفيذ المعالج */ .EE .in .P تُضيف الدالة \fBsigblock\fP() الإشارات في \fImask\fP إلى قناع إشارات العملية (مثل \fIsigprocmask(SIG_BLOCK)\fP في POSIX)، وتُعيد قناع الإشارات السابق للعملية. تُتجاهل محاولات حظر \fBSIGKILL\fP أو \fBSIGSTOP\fP بصمت. .P تضبط الدالة \fBsigsetmask\fP() قناع الإشارة للعملية إلى القيمة المعطاة في \fImask\fP (مثل POSIX \fIsigprocmask(SIG_SETMASK)\fP)، وتُعيد قناع الإشارة السابق للعملية. .P تُعيد الدالة \fBsiggetmask\fP() قناع الإشارة الحالي للعملية. هذه الاستدعاء مكافئ لـ \fIsigblock(0)\fP. .SH "قيمة الإرجاع" تُعيد الدالة \fBsigvec\fP() 0 عند النجاح؛ عند الخطأ، تُعيد \-1 وتضبط \fIerrno\fP للإشارة إلى الخطأ. .P تُعيد الدالتان \fBsigblock\fP() و \fBsigsetmask\fP() قناع الإشارة السابق. .P تُعيد الماكرو \fBsigmask\fP() قناع الإشارة لـ \fIsignum\fP. .SH الأخطاء انظر الأخطاء تحت \fBsigaction\fP(2) و \fBsigprocmask\fP(2). .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBsigvec\fP(), \fBsigmask\fP(), \fBsigblock\fP(), \fBsigsetmask\fP(), \fBsiggetmask\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير لا شيء. .SH التاريخ .TP \fBsigvec\fP() .TQ \fBsigblock\fP() .TQ \fBsigmask\fP() .TQ \fBsigsetmask\fP() 4.3BSD. .TP \fBsiggetmask\fP() أصل غير واضح. .TP \fBsigvec\fP() أُزيل في glibc 2.21. .SH ملاحظات في 4.3BSD، وفرت الدالة \fBsignal\fP() دلالات موثوقة (كما عند استدعاء \fBsigvec\fP() مع \fIvec.sv_mask\fP مساوٍ لـ 0). في System V، توفر \fBsignal\fP() دلالات غير موثوقة. يترك POSIX.1 هذه الجوانب من \fBsignal\fP() غير محددة. انظر \fBsignal\fP(2) لمزيد من التفاصيل. .P من أجل انتظار إشارة، وفر كل من BSD و System V دالة تسمى \fBsigpause\fP(3)، ولكن هذه الدالة لها معطيات مختلفة في النظامين. راجع \fBsigpause\fP(3) للتفاصيل. .SH "انظر أيضًا" \fBkill\fP(2)، \fBpause\fP(2)، \fBsigaction\fP(2)، \fBsignal\fP(2)، \fBsigprocmask\fP(2)، \fBraise\fP(3)، \fBsigpause\fP(3)، \fBsigset\fP(3)، \fBsignal\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 .