English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دروس أساسية بلغة C

تحكم في عملية لغة C

الوظائف في لغة C

المتجهات في لغة C

المراجع في لغة C

ال

مبادئ لغة C

ملفات لغة C

C أخرى

دليل مرجع لغة C

استخدام وظيفة raise() ومثال

مكتبة القياسية C - <signal.h>

وظيفة مكتبة 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");
}

دعونا نكتب ونشغل البرنامج المسبق، وسيكون لدينا النتيجة التالية:

بدء إنشاء إشارة
!! القبض على إشارة !!
إغلاق...

مكتبة القياسية C - <signal.h>