الفرق بين المراجعتين لصفحة: «Ruby/Signal/trap»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>trap</code> الخاص بالصنف <code>Signal</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...' |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>trap | <noinclude>{{DISPLAYTITLE: التابع <code>Signal.trap</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Signal]] | [[تصنيف: Ruby Signal]] | ||
يربط التابع <code>trap</code> معالجًا بإشارة محدَّدة. | |||
< | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">trap( signal, command ) → obj | <syntaxhighlight lang="ruby">trap( signal, command ) → obj | ||
trap( signal ) {| | block } → obj</syntaxhighlight> | trap( signal ) {| | block } → obj</syntaxhighlight>يمثل المعامل <code>signal</code> اسم [[Ruby/Signal|إشارة]] ([[Ruby/String|سلسلة نصية]] مثل "<code>SIGALRM</code>" أو "<code>SIGUSR1</code>" وغير ذلك) أو رقم [[Ruby/Signal|إشارة]]. يمكن حذف الأحرف "<code>SIG</code>" من اسم الإشارة. | ||
تحدد التعليمة <code>command</code> أو الكتلة <code>block</code> المعطاة الشيفرة أو الأوامر المراد تنفيذها عند إطلاق الإشارة. إذا كانت التعليمة تساوي السلسلة النصية "<code>IGNORE</code>" أو "<code>SIG_IGN</code>"، فسيتم تجاهل الإشارة. أما إذا كانت تساوي "<code>DEFAULT</code>" أو "<code>SIG_DFL</code>"، فسيُستدعَى معالج روبي الافتراضي. لكن إذا كانت تساوي "<code>EXIT</code>" ، فستُنهي الإشارة البرنامج النصي. وإذا كان التعليمة تساوي "<code>SYSTEM_DEFAULT</code>"، فسيتم استدعاء معالج نظام التشغيل الافتراضي. خلا ذلك، سيتم تشغيل التعليمة أو الكتلة المعطاة. | |||
سيتم استدعاء اسم الإشارة الخاص "<code>EXIT</code>"، أو رقم الإشارة <code>0</code>، قبل إنهاء البرنامج مباشرة. وسيعيد التابع <code>trap</code> المعالج السابق للإشارة المعينة. | |||
==المعاملات== | ==المعاملات== | ||
===<code>signal</code>=== | ===<code>signal</code>=== | ||
اسم الاشارة المراد ربطها بمعالج. | |||
===<code>command</code>=== | ===<code>command</code>=== | ||
التعليمة المراد تنفيذها عند استلام الإشارة. | |||
==القيمة | ==القيمة المعادة== | ||
يعاد المعالج السابق المرتبط بالإشارة <code>signal</code>. | |||
==أمثلة== | ==أمثلة== | ||
سطر 22: | سطر 25: | ||
<syntaxhighlight lang="ruby">Signal.trap(0, proc { puts "Terminating: #{$$}" }) | <syntaxhighlight lang="ruby">Signal.trap(0, proc { puts "Terminating: #{$$}" }) | ||
Signal.trap("CLD") { puts "Child died" } | Signal.trap("CLD") { puts "Child died" } | ||
fork && Process.wait</syntaxhighlight> | fork && Process.wait</syntaxhighlight>الناتج:<syntaxhighlight lang="text">Terminating: 27461 | ||
==انظر | Child died | ||
* التابع <code>[[Ruby/Signal/ | Terminating: 27460</syntaxhighlight> | ||
==انظر أيضًا== | |||
* التابع <code>[[Ruby/Signal/list|list]]</code>: يعيد قائمة بأسماء ال[[Ruby/Signal|إشارة]] المعيَّنة لأرقام ال[[Ruby/Signal|إشارة]] الأصلية المقابلة لها. | |||
* التابع <code>[[Ruby/Signal/signame|signame]]</code>: يحول رقم ال[[Ruby/Signal|إشارة]] إلى الاسم المقابل لها. | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Signal.html#method-c-trap قسم | *[http://ruby-doc.org/core-2.5.1/Signal.html#method-c-trap قسم التابع trap في الصنف Signal في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 08:56، 4 ديسمبر 2018
يربط التابع trap
معالجًا بإشارة محدَّدة.
البنية العامة
trap( signal, command ) → obj
trap( signal ) {| | block } → obj
يمثل المعامل signal
اسم إشارة (سلسلة نصية مثل "SIGALRM
" أو "SIGUSR1
" وغير ذلك) أو رقم إشارة. يمكن حذف الأحرف "SIG
" من اسم الإشارة.
تحدد التعليمة command
أو الكتلة block
المعطاة الشيفرة أو الأوامر المراد تنفيذها عند إطلاق الإشارة. إذا كانت التعليمة تساوي السلسلة النصية "IGNORE
" أو "SIG_IGN
"، فسيتم تجاهل الإشارة. أما إذا كانت تساوي "DEFAULT
" أو "SIG_DFL
"، فسيُستدعَى معالج روبي الافتراضي. لكن إذا كانت تساوي "EXIT
" ، فستُنهي الإشارة البرنامج النصي. وإذا كان التعليمة تساوي "SYSTEM_DEFAULT
"، فسيتم استدعاء معالج نظام التشغيل الافتراضي. خلا ذلك، سيتم تشغيل التعليمة أو الكتلة المعطاة.
سيتم استدعاء اسم الإشارة الخاص "EXIT
"، أو رقم الإشارة 0
، قبل إنهاء البرنامج مباشرة. وسيعيد التابع trap
المعالج السابق للإشارة المعينة.
المعاملات
signal
اسم الاشارة المراد ربطها بمعالج.
command
التعليمة المراد تنفيذها عند استلام الإشارة.
القيمة المعادة
يعاد المعالج السابق المرتبط بالإشارة signal
.
أمثلة
مثال على استخدام التابع trap
:
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
الناتج:
Terminating: 27461
Child died
Terminating: 27460
انظر أيضًا
- التابع
list
: يعيد قائمة بأسماء الإشارة المعيَّنة لأرقام الإشارة الأصلية المقابلة لها. - التابع
signame
: يحول رقم الإشارة إلى الاسم المقابل لها.