التابع 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
تعقّبات تعيين المتغيرات الكلية.