التابع IO.pread
في روبي
يقرأ التابع pread
من مجرى د/خ maxlen
(انظر فقرة البنية العامة) بايت باستخدام استدعاء النظام pread
، ثم يُعيدها كسلسلة نصية من غير تعديل إزاحة (offset) الواصف الأساسي.
هذا مفيد مقارنة بالجمع بين التابعين seek
و read
معًا في كونه ذريًا (atomic)، مما يسمح لعدة مهام فرعية/عمليات بالتشارك في نفس مجرى د/خ لقراءة الملف من مواضع مختلفة. هذا سيتجاوز أي مساحة تخزين مؤقت للمستخدمين في مجرى د/خ.
في حال إعطاء الوسيط الاختياري outbuf
(انظر فقرة البنية العامة)، فينبغي أن يشير إلى سلسلة نصية، والتي ستتلقى البيانات.
سيُطلق استثناء SystemCallError
عند الخطأ، أو EOFError
عند نهاية الملف، أو NotImplementedError
إن لم يكن نظام التشغيل يدعم استدعاء النظام.
البنية العامة
pread(maxlen, offset[, outbuf]) → string
المعاملات
maxlen
الحد الأقصى للبايتات المقروءة.
offset
عدد صحيح يمثل الإزاحة
outbuf
سلسلة نصية تتلقى البيانات.
القيمة المُعادة
يعيد التابع pread
سلسلة نصية.
أمثلة
مثال على استخدام التابع pread
:
File.write("testfile", "This is line one\nThis is line two\n")
File.open("testfile") do |f|
p f.read # => "This is line one\nThis is line two\n"
p f.pread(12, 0) # => "This is line"
p f.pread(9, 8) # => "line one\n"
end