| sigqueue(3) | Library Functions Manual | sigqueue(3) |
الاسم¶
sigqueue - إيداع إشارة وبيانات إلى عملية
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <signal.h>
int sigqueue(pid_t pid, int sig, const union sigval value);
sigqueue():
_POSIX_C_SOURCE >= 199309L
الوصف¶
ترسل الدالة sigqueue() الإشارة المحددة في sig إلى العملية التي يُعطى معرفها (PID) في pid. الأذونات المطلوبة لإرسال إشارة هي نفسها للدالة kill(2). كما هو الحال مع kill(2)، يمكن استخدام الإشارة الصفرية (0) للتحقق من وجود عملية بمعرف PID معين.
يُستخدم المعامل value لتحديد عنصر بيانات مصاحب (إما عدد صحيح أو قيمة مؤشر) ليُرسل مع الإشارة، وله النوع التالي:
union sigval {
int sival_int;
void *sival_ptr;
};
إذا كانت العملية المستقبلة قد ثبتت معالجًا لهذه الإشارة باستخدام العلم SA_SIGINFO للدالة sigaction(2)، فيمكنها الحصول على هذه البيانات عبر حقل si_value من بنية siginfo_t الممررة كوسيط ثانٍ للمعالج. علاوة على ذلك، سيُضبط حقل si_code لتلك البنية على SI_QUEUE.
قيمة الإرجاع¶
عند النجاح، تُرجع sigqueue() 0، مما يشير إلى أن الإشارة أُودعت بنجاح في العملية المستقبلة. وإلا، تُرجع -1 ويُضبط errno للإشارة إلى الخطأ.
الأخطاء¶
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| sigqueue() | سلامة الخيوط | MT-Safe |
الإصدارات¶
الاختلافات بين مكتبة C والنواة¶
في لينكس، تُنفذ sigqueue() باستخدام استدعاء النظام rt_sigqueueinfo(2). يختلف استدعاء النظام في وسيطه الثالث، وهو بنية siginfo_t التي ستُزود لمعالج الإشارة للعملية المستقبلة أو تُرجع بواسطة استدعاء sigtimedwait(2) للعملية المستقبلة. داخل غلاف glibc للدالة sigqueue()، يُهيأ هذا الوسيط، uinfo، كالتالي:
uinfo.si_signo = sig; /* الوسيط المُمرَّر إلى sigqueue() */ uinfo.si_code = SI_QUEUE; uinfo.si_pid = getpid(); /* مُعرِّف عملية المُرسِل */ uinfo.si_uid = getuid(); /* المعرّف الفريد الحقيقي للمُرسِل */ uinfo.si_value = val; /* الوسيط المُمرَّر إلى sigqueue() */
المعايير¶
POSIX.1-2008.
التاريخ¶
لينكس 2.2. POSIX.1-2001.
ملاحظات¶
إذا أدت هذه الدالة إلى إرسال إشارة إلى العملية التي استدعتها، ولم تكن تلك الإشارة محجوبة بواسطة الخيط المستدعي، ولم تكن هناك خيوط أخرى راغبة في معالجة هذه الإشارة (إما بإلغاء حجبها، أو بانتظارها باستخدام sigwait(3))، فيجب عندئذٍ تسليم إشارة واحدة على الأقل إلى هذا الخيط قبل أن تعود هذه الدالة.
انظر أيضًا¶
kill(2), rt_sigqueueinfo(2), sigaction(2), signal(2), pthread_sigqueue(3), sigwait(3), signal(7)
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 8 فبراير 2026 | صفحات دليل لينكس 6.18 |