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

من موسوعة حسوب
< Ruby‏ | IO
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

يعين التابع close_on_exec عند استدعائه بالشكل close_on_exec = bool قيمة الراية close-on-exec إلى القيمة bool المنطقية.

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

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

close_on_exec = bool  true or false

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

تعاد القيمة المنطقية bool بعد ضبطها إلى الراية close-on-exec.

أمثلة

مثال على استخدام التابع 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‎

انظر أيضًا

  • التابع autoclose?‎: يتحقق إن كان واصف الملف الأساسي لمجرى معين سيُغلق تلقائيًا عند الانتهاء منه.
  • التابع close: يغلق مجرى د/خ، ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل.
  • التابع close_on_exec?‎: يتحقق إن كانت الراية close-on-exec الخاصة بالمجرى الذي استدعي معه مضبوطة إلى القيمة true.

مصادر