التابع IO.pwrite‎ في روبي

من موسوعة حسوب
< Ruby‏ | IO

يكتب التابع pwrite السلسلة النصية المُمرَّرة إليه في موضع محدَّد من المجرى الذي استُدعي معه باستخدام استدعاء دالة النظام pwrite()‎.

هذا مفيد مقارنة بالجمع بين التابعين seek و write معا في كونه ذريًا (atomic)، مما يسمح لعدة مهام فرعية/عمليات بالتشارك في نفس المجرى لقراءة الملف من مواضع مختلفة. هذا سيتجاوز أي مساحة تخزين مؤقت للمستخدمين من المجرى.

سيعيد التابع pwrite عدد البايتات المكتوبة، أو سيُطلق الاستثناء SystemCallError في حال حدوث خطأ، أو NotImplementedError إذا لم يكن نظام الشغيل يدعم استدعاء النظام.

البنية العامة

pwrite(string, offset)  integer

المعاملات

string‎

سلسلة نصية يراد كتابتها على المجرى المعطى.

offset‎

عدد صحيح يمثل مقدار إزاحة موضع المؤشر إلى المكان الذي يراد كتابة السلسلة النصية string فيه.

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

يعاد عدد صحيح يمثِّل عدد البايتات المكتوبة في المجرى.

أمثلة

مثال على استخدام التابع pwrite‎:

File.open("out", "w") do |f|
  f.pwrite("ABCDEF", 3)   #=> 6
end
File.read("out")          #=> "\u0000\u0000\u0000ABCDEF"‎

انظر أيضًا

  • التابع printf: ينسق الكائنات المُمرَّرة إليه ثم يكتبها في المجرى الذي استدعي معه. 
  • التابع puts: يكتب الكائن(ات) المُمرَّرة إليه في المجرى الذي استُدعي معه، ويضيف سطرًا جديدًا بعد الأسطر التي لا تنتهي بمحرف السطر الجديد ثم يعيد القيمة nil.
  • التابع read: يقرأ عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه

مصادر