نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف IOError في روبي
يُطلق الاستثناء IOError عند فشل عملية إدخال/إخراج (IO operation) في روبي. File.open("/etc/hosts") {|f| f << "example"}
#=> IOError: not opened for writing
File.open("/etc/hosts") {|f| f.close; f.read }
#=> IOError: closed stream
تذكر أنَّ فشل بعض عمليات الإدخال/الإخراج قد يؤدي إلى إطلاق الاستثناء SystemCallError، وهذا الاستثناء ليس متفرع من الصنف IOError. File.open("does/not/exist")
#=> Errno::ENOENT: No such file or directory - does/not/exist
مصادر صفحة الصنف IOError في توثيق روبي الرسمي.
التابع IO.close_read في روبي
يغلق التابع close_read طرف القراءة الخاص بمجرى د/خ مزدوج (duplex)؛ أي تلك المجاري التي تحتوي على مجريي قراءة وكتابة، مثل الأنابيب (pipes). سيُطلق الاستثناء IOError إن لم يكن المجرى مزدوجًا. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close_read → nil
القيمة المعادة تعاد القيمة nil بعد تنفيذ العملية. أمثلة مثال على استخدام التابع close_read: f = IO.popen("/bin/sh","r+")
f.close_read
f.readlines
ناتج تنفيذ هذا المثال هو: prog.rb:3:in `readlines': not opened for reading (IOError)
from prog.rb:3
انظر أيضًا التابع close_write: يغلق ...
التابع IO.close_write في روبي
يغلق التابع close_write طرف الكتابة الخاص بمجرى د/خ مزدوج (duplex)؛ أي تلك المجاري التي تحتوي على مجريي قراءة وكتابة، مثل الأنابيب (pipes). سيُطلق الاستثناء IOError إن لم يكن المجرى مزدوجًا. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close_write→ nil
القيمة المعادة تعاد القيمة nil بعد تنفيذ العملية. أمثلة مثال على استخدام التابع close_write: f = IO.popen("/bin/sh","r+")
f.close_write
f.print "nowhere"
ناتج تنفيذ هذه الشيفرة هو: prog.rb:3:in `write': not opened for writing (IOError)
from prog.rb:3:in `print'
from prog.rb:3
...
التابع IO.close في روبي
يغلق التابع close المجرى الذي استدعي معه ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل. لن يكون المجرى متاحًا لأية عمليات إضافية على البيانات؛ وفي حال محاولة إجراء مثل تلك العمليات، فسيُطلَق الخطأ IOError. يتم إغلاق مجاري د/خ تلقائيًا من طرف جامع المهملات (garbage collector). في حال فتح مجرى د/خ بواسطة التابع popen، فسيعيّن التابع close قيمة $?. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close→ nil
القيمة المعادة تعاد القيمة nil بعد ...
الصنف EOFError في روبي
يٌطلَق الخطأ EOFError من طرف بعض عمليات الصنف IO عندما تصل إلى نهاية الملف. تنقسم أغلب توابع الصنف IO -فيما يتعلق بالوصول إلى نهاية الملف- إلى قسمين: الأول يعيد القيمة nil عند الوصول إلى نهاية الملف، والآخر يطلق الخطأ EOFError عند الوصول إلى نهاية الملف. الصنف EOFError هو صنف فرعي من الصنف IOError. file = File.open("/etc/hosts")
file.read
file.gets #=> nil
file.readline #=> EOFError: الوصول إلى نهاية الملف
مصادر الصنف EOFError في توثيق روبي الرسمي.
التابع IO.autoclose= في روبي
يُعيّن التابع autoclose عند استدعائه بالشكل autoclose = bool قيمة راية الإغلاق التلقائي (auto-close flag) إلى القيمة bool المنطقية. البنية العامة autoclose = bool → true or false
القيمة المعادة تعاد قيمة منطقية تمثل قيمة راية الإغلاق التلقائي بعد ضبطها. أمثلة مثال على استخدام التابع autoclose=: f = open("/dev/null")
IO.for_fd(f.fileno)
# ...
f.gets # may cause IOError
f = open("/dev/null")
IO.for_fd(f.fileno).autoclose = true
# ...
f.gets # won't cause IOError
انظر أيضًا التابع autoclose?: يتحقق إن كان واصف الملف الأساسي لمجرى معين سيُغلق تلقائيًا عند الانتهاء منه. التابع closed?: ...
التابع File.to_path في روبي
يعيد التابع to_path سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف الذي استدعي معه. لا يعمل هذا التابع على توحيد شكل وبنية المسار (normalize). قد لا يشير اسم المسار إلى الملف المقابل للملف المعطى. على سبيل المثال، يصبح اسم المسار خاويًا (void) عندما يُنقَل أو يحذف الملف. يرمي هذا التابع الاسثناء IOError للملف المعطى إذا كان قد أنشئ باستعمال File::Constants::TMPFILE لأنه لا يملك اسم مسارٍ. البنية العامة to_path → filename
القيمة المعادة تعاد سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف ...
التابع IO.each_byte في روبي
يستدعي التابع each_byte الكتلة المعطاة على كل بايت (0..255) في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_byte {|byte| block } → ios
each_byte→ an_enumerator
القيمة المعادة يعاد المجرى المعطى بعد تنفيذ الكتلة block على كل بايت من بايتاته، أو يعاد كائن من الصنف Enumerator في حال لم تُعطَ أية كتلة. أمثلة مثال على استخدام التابع ...
التابع File.path في روبي
يعيد التابع path سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف الذي استدعي معه. لا يعمل هذا التابع على توحيد شكل وبنية المسار (normalize). قد لا يشير اسم المسار إلى الملف المقابل للملف المعطى. على سبيل المثال، يصبح اسم المسار خاويًا (void) عندما يُنقَل أو يحذف الملف. يرمي هذا التابع الاسثناء IOError للملف المعطى إذا كان قد أنشئ باستعمال File::Constants::TMPFILE لأنه لا يملك اسم مسارٍ. البنية العامة path → filename
to_path → filename
القيمة المعادة تعاد سلسلة نصية تمثِّل المسار الذي استُعمِل ...
التابع IO.each_char في روبي
يستدعي التابع each_char الكتلة المعطاة على كل محرف في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_char {|c| block } → ios
each_char→ an_enumerator
القيمة المعادة يعاد المجرى المعطى بعد تنفيذ الكتلة block على كل محرف من محارفه، أو يعاد كائن من الصنف Enumerator في حال لم تُعطَ أية كتلة. أمثلة مثال على استخدام التابع each_char: ...