التابع IO.close_on_exec=‎ في روبي

من موسوعة حسوب
< Ruby‏ | IO
مراجعة 12:04، 13 نوفمبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.close_on_exec=‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعين التابع close_on_exec= الراية close-on-exec.


تعيّن روبي الرايات close-on-exec لكل واصفات الملفات (file descriptors) افتراضيًا منذ الإصدار 2.0.0. لذلك لا تحتاج إلى تعيينها بنفسك. أيضاً، قد يؤدي إبطال الراية file descriptors إلى حدوث تسرب واصف الملف إن استخدمت مهه أخرى التابعين ‎fork()‎ و exec()‎ (عبر التابع system()‎ على سبيل المثال). إن كنت بحاجة إلى توريث واصف الملفات في عملية فرعية (child process)، فاستخدم وسيط التابع spawn()‎ مثل fd => fd.

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

close_on_exec = bool  true or false

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

أمثلة

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

f = open("/dev/null")
f.close_on_exec = true
system("cat", "/proc/self/fd/#{f.fileno}") # cat: /proc/self/fd/3: No such file or directory
f.closed?                #=> false‎

انظر أيضا

  • التابع close: يغلق مجرى د/خ ios (انظر فقرة البنية العامة)، ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل. المجرى لن يكون متاحًا لأي عمليات إضافية على البيانات؛ وفي حال محاولة إجراء مثل تلك العمليات، فسيُطللق الخطأ IOError. يتم إغلاق مجاري د/خ تلقائيًا من طرف جامع المهملات (garbage collector).
  • التابع close_on_exec?‎: يُعيد القيمة true إن كانت الراية close_on_exec الخاصة بمجرى د/خ ios تساوي false.

مصادر