الوحدة 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) وحالة الخروج.

مصادر