الفرق بين المراجعتين لصفحة: «Ruby/Process::Status»

من موسوعة حسوب
طلا ملخص تعديل
طلا ملخص تعديل
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
{{DISPLAYTITLE:الوحدة <code>Process::Status</code> في روبي}}
{{DISPLAYTITLE:الوحدة <code>Process::Status</code> في روبي}}
تُغلِّف الوحدة <code>Process::Status</code> معلومات عن حالة عملية النظام النشطة أو المنتهية. يكون المتغيِّر ‎<code>$?</code>‎ المُضمَّن إمّا مساويًا للقيمة <code>nil</code> أو يكون كائنًا للوحدة <code>Process::Status</code>.<syntaxhighlight lang="ruby">
تُغلِّف الوحدة <code>Process::Status</code> معلومات عن حالة عملية النظام النشطة أو المنتهية. يكون المتغيِّر ‎<code>$?</code>‎ المُضمَّن إمّا مساويًا للقيمة <code>nil</code> أو يكون كائنًا للوحدة <code>Process::Status</code>.<syntaxhighlight lang="ruby">
fork { exit 99 }  #=> 26557
fork { exit 99 }  #=> 26557
سطر 15: سطر 14:
== توابع النسخة العامة (Public Instance Methods) ==
== توابع النسخة العامة (Public Instance Methods) ==


=== <code>[[Ruby/Process/Status/26|&]]</code> ===
=== <code>[[Ruby/Process::Status/26|&]]</code> ===
يجري العملية <code>AND</code> المنطقية لبِتَّات الحالة <code>stat</code> مع قيمة محدَّدة.
يجري العملية <code>AND</code> المنطقية لبِتَّات الحالة <code>stat</code> مع قيمة محدَّدة.


=== <code>[[Ruby/Process/Status/3D-3D|==]]</code> ===
=== <code>[[Ruby/Process::Status/3D-3D|==]]</code> ===
يتحقَّق إذا كان قيمة الحالة <code>stat</code> مساويةً لقيمة عددية محدَّدة.
يتحقَّق إذا كان قيمة الحالة <code>stat</code> مساويةً لقيمة عددية محدَّدة.


=== <code>[[Ruby/Process/Status/3E-3E|>>]]</code> ===
=== <code>[[Ruby/Process::Status/3E-3E|>>]]</code> ===
يزيح بِتَّات قيمة الحالة <code>stat</code> إلى اليمين عددًا محدَّدًا من المنازل.
يزيح بِتَّات قيمة الحالة <code>stat</code> إلى اليمين عددًا محدَّدًا من المنازل.


=== <code>[[Ruby/Process/Status/coredump-3F|?coredump]]</code> ===
=== <code>[[Ruby/Process::Status/coredump-3F|?coredump]]</code> ===
يتحقَّق إذا كانت حالة العمليَّة قد ولَّدت تفريغًا للذاكرة (<code>core dump</code> أو <code>memory dump</code>) عندما أُنهيت.
يتحقَّق إذا كانت حالة العمليَّة قد ولَّدت تفريغًا للذاكرة (<code>core dump</code> أو <code>memory dump</code>) عندما أُنهيت.


=== <code>[[Ruby/Process/Status/exited-3F|?exited]]</code> ===
=== <code>[[Ruby/Process::Status/exited-3F|?exited]]</code> ===
يتحقَّق إذا كانت حالة العمليَّة <code>stat</code> قد أُنهيَت بشكلٍ طبيعي (مثل استخدام الاستدعاء ()exit لإنهاء البرنامج).
يتحقَّق إذا كانت حالة العمليَّة <code>stat</code> قد أُنهيَت بشكلٍ طبيعي (مثل استخدام الاستدعاء ()exit لإنهاء البرنامج).


=== <code>[[Ruby/Process/Status/exitstatus|exitstatus]]</code> ===
=== <code>[[Ruby/Process::Status/exitstatus|exitstatus]]</code> ===
يُعيد البِتَّات الثمانية الأقل أهمية للقيمة التي تعيدها الشيفرة وتخرج بها من الحالة <code>stat</code>.
يُعيد البِتَّات الثمانية الأقل أهمية للقيمة التي تعيدها الشيفرة وتخرج بها من الحالة <code>stat</code>.


=== <code>[[Ruby/Process/Status/inspect|inspect]]</code> ===
=== <code>[[Ruby/Process::Status/inspect|inspect]]</code> ===
يؤدي دور تابع الفحص (inspection method).
يؤدي دور تابع الفحص (inspection method).


=== <code>[[Ruby/Process/Status/pid|pid]]</code> ===
=== <code>[[Ruby/Process::Status/pid|pid]]</code> ===
يُعيد معرِّف العملية (process ID) الذي يمثِّله كائن حالة <code>stat</code> محدَّد.
يُعيد معرِّف العملية (process ID) الذي يمثِّله كائن حالة <code>stat</code> محدَّد.


=== <code>[[Ruby/Process/Status/signaled-3F|?signaled]]</code> ===
=== <code>[[Ruby/Process::Status/signaled-3F|?signaled]]</code> ===
يتحقَّق إذا كانت الحالة <code>stat</code> للعملية تشير إلى أنَّها أُنهيت بسبب إشارةٍ غير ملتقطة (uncaught signal).
يتحقَّق إذا كانت الحالة <code>stat</code> للعملية تشير إلى أنَّها أُنهيت بسبب إشارةٍ غير ملتقطة (uncaught signal).


=== <code>[[Ruby/Process/Status/stopped-3F|?stopped]]</code> ===
=== <code>[[Ruby/Process::Status/stopped-3F|?stopped]]</code> ===
يتحقَّق إذا كانت العمليَّة قد أوقِفَت. يعيد التابع القيمة <code>true</code> فقط إذا ضُبطت الراية <code>WUNTRACED</code> في استدعاء <code>wait</code> الموافق.
يتحقَّق إذا كانت العمليَّة قد أوقِفَت. يعيد التابع القيمة <code>true</code> فقط إذا ضُبطت الراية <code>WUNTRACED</code> في استدعاء <code>wait</code> الموافق.


=== <code>[[Ruby/Process/Status/stopsig|stopsig]]</code> ===
=== <code>[[Ruby/Process::Status/stopsig|stopsig]]</code> ===
يُعيد عدد الإشارات التي تسبَّبت في إيقاف العمليَّة (أو القيمة <code>nil</code> إذا كانت غير متوقَّفة).
يُعيد عدد الإشارات التي تسبَّبت في إيقاف العمليَّة (أو القيمة <code>nil</code> إذا كانت غير متوقَّفة).


=== <code>[[Ruby/Process/Status/success-3F|?success]]</code> ===
=== <code>[[Ruby/Process::Status/success-3F|?success]]</code> ===
يتحقَّق إذا كانت حالة العملية <code>stat</code> تشير إلى أنَّها ناجحة.
يتحقَّق إذا كانت حالة العملية <code>stat</code> تشير إلى أنَّها ناجحة.


=== <code>[[Ruby/Process/Status/termsig|termsig]]</code> ===
=== <code>[[Ruby/Process::Status/termsig|termsig]]</code> ===
يُعيد عدد الإشارات التي تسبَّبت في إنهاء العمليَّة.
يُعيد عدد الإشارات التي تسبَّبت في إنهاء العمليَّة.


=== <code>[[Ruby/Process/Status/to i|to_i]]</code> ===
=== <code>[[Ruby/Process::Status/to i|to_i]]</code> ===
يُعيد بِتَّات حالة العمليَّة <code>stat</code> على شكل عددٍ صحيح.
يُعيد بِتَّات حالة العمليَّة <code>stat</code> على شكل عددٍ صحيح.


=== <code>[[Ruby/Process/Status/to s|to_s]]</code> ===
=== <code>[[Ruby/Process::Status/to s|to_s]]</code> ===
يُظهر معرِّف العملية (PID) وحالة الخروج.
يُظهر معرِّف العملية (PID) وحالة الخروج.



المراجعة الحالية بتاريخ 07:50، 30 مارس 2019

تُغلِّف الوحدة Process::Status معلومات عن حالة عملية النظام النشطة أو المنتهية. يكون المتغيِّر ‎$?‎ المُضمَّن إمّا مساويًا للقيمة nil أو يكون كائنًا للوحدة Process::Status.

fork { exit 99 }   #=> 26557
Process.wait       #=> 26557
$?.class           #=> Process::Status
$?.to_i            #=> 25344
$? >> 8            #=> 99
$?.stopped?        #=> false
$?.exited?         #=> true
$?.exitstatus      #=> 99

تسجِّل أنظمة Posix معلوماتٍ عن العمليات مستخدمةً العدد الصحيح 16-بت. تسجِّل البِتَّات السفلية الأقل أهمية (lower bits) من هذا العدد حالة العمليَّة (متوقِّفة، مغلقة، مؤشَّرة) والبِتَّات العلوية الأكثر أهمية (upper bits) من المحتمل أن تتضمَّن معلوماتٍ إضافيَّةٍ (على سبيل المثال، يُعيد البرنامج رمزًا في حالة العمليات المُغلقة). قبل الاصدار 1.8 من روبي، كانت هذه البِتَّات مكشوفةً وظاهرةً مباشرةً لبرنامج روبي. الآن، أصبحت روبي تغلِّفها في الكائن Process::Status. من أجل توافقٍ أعظمي، تحتفظ هذه الكائنات بواجهةٍ معتمدةٍ على البت (bit-oriented interface). من الآن وصاعدًا، عندما نتكلَّم عن قيمة الحالة stat، فنحن نشير إلى قيمة العدد ذي الحجم 16 بت الذي أشرنا إليه آنفًا.

توابع النسخة العامة (Public Instance Methods)

&

يجري العملية AND المنطقية لبِتَّات الحالة stat مع قيمة محدَّدة.

==

يتحقَّق إذا كان قيمة الحالة stat مساويةً لقيمة عددية محدَّدة.

>>

يزيح بِتَّات قيمة الحالة stat إلى اليمين عددًا محدَّدًا من المنازل.

?coredump

يتحقَّق إذا كانت حالة العمليَّة قد ولَّدت تفريغًا للذاكرة (core dump أو memory dump) عندما أُنهيت.

?exited

يتحقَّق إذا كانت حالة العمليَّة stat قد أُنهيَت بشكلٍ طبيعي (مثل استخدام الاستدعاء ()exit لإنهاء البرنامج).

exitstatus

يُعيد البِتَّات الثمانية الأقل أهمية للقيمة التي تعيدها الشيفرة وتخرج بها من الحالة stat.

inspect

يؤدي دور تابع الفحص (inspection method).

pid

يُعيد معرِّف العملية (process ID) الذي يمثِّله كائن حالة stat محدَّد.

?signaled

يتحقَّق إذا كانت الحالة stat للعملية تشير إلى أنَّها أُنهيت بسبب إشارةٍ غير ملتقطة (uncaught signal).

?stopped

يتحقَّق إذا كانت العمليَّة قد أوقِفَت. يعيد التابع القيمة true فقط إذا ضُبطت الراية WUNTRACED في استدعاء wait الموافق.

stopsig

يُعيد عدد الإشارات التي تسبَّبت في إيقاف العمليَّة (أو القيمة nil إذا كانت غير متوقَّفة).

?success

يتحقَّق إذا كانت حالة العملية stat تشير إلى أنَّها ناجحة.

termsig

يُعيد عدد الإشارات التي تسبَّبت في إنهاء العمليَّة.

to_i

يُعيد بِتَّات حالة العمليَّة stat على شكل عددٍ صحيح.

to_s

يُظهر معرِّف العملية (PID) وحالة الخروج.

مصادر