الوحدة Process::Status
في روبي
تُغلِّف الوحدة 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) وحالة الخروج.