الفرق بين المراجعتين لصفحة: «Ruby/IO/close on exec-3D»

من موسوعة حسوب
< Ruby‏ | IO
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.close_on_exec=‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف...'
 
ط تدقيق
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby IO]]
[[تصنيف: Ruby IO]]
يعين التابع <code>close_on_exec=</code> الراية close-on-exec.
يعين التابع <code>close_on_exec</code> عند استدعائه بالشكل <code>close_on_exec = bool</code> قيمة الراية <code>close-on-exec</code> إلى القيمة <code>bool</code> المنطقية.


 
تعيّن روبي الرايات <code>close-on-exec</code> لكل واصفات الملفات (file descriptors) افتراضيًا منذ الإصدار 2.0.0. لذلك، لا تحتاج إلى تعيينها بنفسك. أضف إلى ذلك أنَّه قد يؤدي عدم ضبط الراية <code>close-on-exec</code> إلى حدوث تسرب لواصف الملف إن استخدمت [[Ruby/Thread|مهمة فرعية]] أخرى التابعين <code>‎fork()‎</code> و <code>exec()‎</code> (عبر التابع <code>system()‎</code> على سبيل المثال). إن كنت بحاجة إلى توريث واصف الملفات في عملية فرعية (child process)، فاستخدم وسيط التابع <code>spawn()‎</code> مثل <code>fd=>fd</code>.
 
تعيّن روبي الرايات close-on-exec لكل واصفات الملفات (file descriptors) افتراضيًا منذ الإصدار 2.0.0. لذلك لا تحتاج إلى تعيينها بنفسك. أيضاً، قد يؤدي إبطال الراية file descriptors إلى حدوث تسرب واصف الملف إن استخدمت [[Ruby/Thread|مهه]] أخرى التابعين ‎fork()‎ و exec()‎ (عبر التابع system()‎ على سبيل المثال). إن كنت بحاجة إلى توريث واصف الملفات في عملية فرعية (child process)، فاستخدم وسيط التابع spawn()‎ مثل fd => fd.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">close_on_exec = bool → true or false‎</syntaxhighlight>
<syntaxhighlight lang="ruby">close_on_exec = bool → true or false‎</syntaxhighlight>
==القيمة المُعادة==
==القيمة المعادة==
تعاد القيمة المنطقية <code>bool</code> بعد ضبطها إلى الراية <code>close-on-exec</code>.
 
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>close_on_exec=‎</code>:
مثال على استخدام التابع <code>close_on_exec</code>:
<syntaxhighlight lang="ruby">f = open("/dev/null")
<syntaxhighlight lang="ruby">f = open("/dev/null")
f.close_on_exec = true
f.close_on_exec = true
system("cat", "/proc/self/fd/#{f.fileno}") # cat: /proc/self/fd/3: No such file or directory
system("cat", "/proc/self/fd/#{f.fileno}") # cat: /proc/self/fd/3: No such file or directory
f.closed?                #=> false‎</syntaxhighlight>
f.closed?                #=> false‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/IO/close|close]]</code>: يغلق [[Ruby/IO|مجرى د/خ]] <code>ios</code> (انظر فقرة البنية العامة)، ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل. المجرى لن يكون متاحًا لأي عمليات إضافية على البيانات؛ وفي حال محاولة إجراء مثل تلك العمليات، فسيُطللق الخطأ <code>IOError</code>. يتم إغلاق [[Ruby/IO|مجاري د/خ]] تلقائيًا من طرف جامع المهملات (garbage collector).
* التابع [[Ruby/IO/autoclose-3F|<code>autoclose?‎</code>]]: يتحقق إن كان واصف الملف الأساسي لمجرى معين سيُغلق تلقائيًا عند الانتهاء منه.
* التابع <code>[[Ruby/IO/close_on_exec-3F|close_on_exec?‎]]</code>: يُعيد  القيمة <code>true</code> إن كانت الراية close_on_exec الخاصة ب[[Ruby/IO|مجرى د/خ]] <code>ios</code> تساوي false.
* التابع <code>[[Ruby/IO/close|close]]</code>: يغلق [[Ruby/IO|مجرى د/خ]]، ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل.
* التابع <code>[[Ruby/IO/close_on_exec-3F|close_on_exec?‎]]</code>: يتحقق إن كانت الراية <code>close-on-exec</code> الخاصة ب[[Ruby/IO|المجرى]] الذي استدعي معه مضبوطة إلى القيمة <code>true</code>.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-close_on_exec-3D قسم التابع close_on_exec=‎ في الصنف IO‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-close_on_exec-3D قسم التابع close_on_exec=‎ في الصنف IO‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 08:41، 22 ديسمبر 2018

يعين التابع 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.

مصادر