الفرق بين المراجعتين ل"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> قيمة الراية close-on-exec.
  
 
+
تعيّن روبي الرايات close-on-exec لكل واصفات الملفات (file descriptors) افتراضيًا منذ الإصدار 2.0.0. لذلك لا تحتاج إلى تعيينها بنفسك. أيضاً، قد يؤدي إبطال الراية close-on-exec إلى حدوث تسرب لواصف الملف إن استخدمت [[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>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
سطر 18: سطر 18:
 
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).
+
* التابع <code>[[Ruby/IO/close|close]]</code>: يغلق  [[Ruby/IO|مجرى د/خ]]، ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل.
* التابع <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_on_exec-3F|close_on_exec?‎]]</code>: يُعيد  القيمة <code>true</code> إن كانت الراية close_on_exec الخاصة ب[[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‎ في توثيق روبي الرسمي.]

مراجعة 12:09، 13 نوفمبر 2018

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

تعيّن روبي الرايات 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

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

تعاد قيمة منطقية.

أمثلة

مثال على استخدام التعبير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: يغلق مجرى د/خ، ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل.
  • التابع close_on_exec?‎: يُعيد القيمة true إن كانت الراية close_on_exec الخاصة بمجرى د/خ تساوي true.

مصادر