English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
وظيفة مكتبة C int raise(int sig) سيؤدي إلى توليد إشارة sig.sig المتغيرات متوافقة مع SIG مكتبات.
إليك إعلان وظيفة raise().
int raise(int sig)
sig -- رمز الإشارة المرسل. إليك بعض القيم المعيارية لإشارات المعايير:
مكتبة | إشارة |
---|---|
SIGABRT | (إشارة إلغاء) إنهاء غير طبيعية للبرنامج. |
SIGFPE | (إشارة استثناء عشوائي) خطأ في العمليات الحسابية، مثل المشتق من صفر أو التهديد (ليس بالضرورة عمليات حسابية عشوائية). |
SIGILL | (إشارة تعليم غير قانوني) تعليم غير قانوني في الصورة، مثل تعليم غير قانوني، عادة ما يكون بسبب تنوع في الكود أو محاولة تنفيذ بيانات. |
SIGINT | (إشارة انقطاع) إشارة انقطاع، مثل ctrl-C، عادة ما يتم إنشاؤها من قبل المستخدم. |
SIGSEGV | (إشارة انتهاك التقطيع) زيادة غير قانونية في الذاكرة، مثل الوصول إلى وحدة ذاكرة غير موجودة. |
SIGTERM | (إشارة إنهاء) إرسال طلب إنهاء إلى البرنامج الحالي. |
إذا كانت النتيجة ناجحة، فإن الوظيفة تعود صفر، وإلا تعود غير صفر.
مثال تحتوي على استخدام وظيفة raise().
#include <signal.h> #include <stdio.h> void signal_catchfunc(int); int main() { int ret; ret = signal(SIGINT, signal_catchfunc); if( ret == SIG_ERR) { printf("خطأ: لا يمكن تعيين معالج الإشارة.\n"); exit(0); } printf("بدء توليد إشارة.\n"); ret = raise(SIGINT); if( ret != 0 ) { printf("خطأ: لا يمكن توليد إشارة SIGINT.\n"); exit(0); } printf("خروج...\n"); return(0); } void signal_catchfunc(int signal) { printf("!! القبض على إشارة !!\n"); }
دعونا نكتب ونشغل البرنامج المسبق، وسيكون لدينا النتيجة التالية:
بدء إنشاء إشارة !! القبض على إشارة !! إغلاق...