الفرق بين المراجعتين لصفحة: «Ruby/IO/close on exec-3D»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط تدقيق |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby IO]] | [[تصنيف: Ruby IO]] | ||
يعين | يعين التابع <code>close_on_exec</code> عند استدعائه بالشكل <code>close_on_exec = bool</code> قيمة الراية <code>close-on-exec</code> إلى القيمة <code>bool</code> المنطقية. | ||
تعيّن روبي الرايات close-on-exec لكل واصفات الملفات (file descriptors) افتراضيًا منذ الإصدار 2.0.0. | تعيّن روبي الرايات <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>. | ||
==البنية العامة== | ==البنية العامة== | ||
<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>: | ||
<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/autoclose-3F|<code>autoclose?</code>]]: يتحقق إن كان واصف الملف الأساسي لمجرى معين سيُغلق تلقائيًا عند الانتهاء منه. | ||
* التابع <code>[[Ruby/IO/close_on_exec-3F|close_on_exec?]]</code>: | * التابع <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 قسم | *[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
.