التابع trap‎ الخاص بالصنف Kernel في روبي

من موسوعة حسوب

يحدد التابع trap معالج الإشارات (handling of signals). الوسيط الأول يمثل اسم إشارة (سلسلة نصية مثل "SIGALRM" أو "SIGUSR1" وغير ذلك) أو رقم إشارة. يمكن حذف الأحرف "SIG" من اسم الإشارة. تحدد التعليمة command أو الكتلة المعطاة الكود البرمجي المراد تشغيله عند إطلاق الإشارة. إذا كانت التعليمة تساوي السلسلة النصية "IGNORE" أو "SIG_IGN" ، فسيتم تجاهل الإشارة. أما إذا كانت تساوي "DEFAULT" أو "SIG_DFL" ، فسيُستدعى معالج روبي الافتراضي. لكن إذا كانت تساوي "EXIT" ، فستنهي الإشارة البرنامج النصي. إذا كان التعليمة تساوي "SYSTEM_DEFAULT" ، فسيتم استدعاء معالج نظام التشغيل الافتراضي. خلا ذلك، سيتم تشغيل التعليمة أو الكتلة المعطاة. وسيتم استدعاء اسم الإشارة الخاص "EXIT"، أو رقم الإشارة 0،

قبل إنهاء البرنامج مباشرة. يعيد التابع trap المعالج السابق للإشارة المعينة.

البنية العامة

trap( signal, command )  obj
trap( signal ) {| | block }  obj

المعاملات

signal‎

سلسلة نصية تمثل اسم إشارة.

command‎

التعليمةالمراد تنفيذها عند إطلاق الإشارة.

القيمة المُعادة

يعيد التابع trap المعالج السابق للإشارة المعينة.

أمثلة

مثال على استخدام التابع trap‎:

Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD")  { puts "Child died" }
fork && Process.wait

الناتج:

Terminating: 27461
Child died
Terminating: 27460

انظر أيضا

  • التابع trace_var: يضبط التابع trace_var تعقّبات تعيين المتغيرات الكلية.

مصادر