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

من موسوعة حسوب
< Ruby‏ | Kernel
مراجعة 23:37، 23 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>trap‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

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

الناتج:

Terminating: 27461
Child died
Terminating: 27460

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

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

المعاملات

signal‎

command‎

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

أمثلة

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

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

انظر أيضا

  • التابع trace_var: يضبط التابع trace_var تعقّبات تعيين المتغيرات الكلية. يحدد الوسيط symbol المتغير (إما على شكل سلسلة نصية أو معرف رمز [symbol identifier]). يتم تنفيذ الوسيط cmd (الذي قد يكون سلسلة نصية أو كائن Proc) أو كتلة برمجية كلما تم تعيين المتغير. تتلقى الكتلة أو الكائن Proc القيمة الجديدة للمتغير كوسيط. انظر أيضا Kernel::untrace_var.
  • التابع untrace_var: يزيل التابع untrace_var التعقب للتعليمة cmd المحددة على المتغير الكلي المحدد ثم يعيد nil. في حال عدم تمرير الوسيط cmd، فسيزيل التعقب نهائيًا لهذا المتغير ويعيد مصفوفة تحتوي على التعليمات المٌزالة بالفعل.

مصادر