التابع trap
الخاص بالصنف Signal
في روبي
يحدد التابع 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