الفرق بين المراجعتين ل"Ruby/IO/pwrite"

من موسوعة حسوب
< Ruby‏ | IO
اذهب إلى التنقل اذهب إلى البحث
ط (تدقيق)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby IO]]
 
[[تصنيف: Ruby IO]]
يكتب التابع <code>pwrite</code> [[Ruby/String|السلسلة النصية]] المعطاة في [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه عند موضع الإزاحة <code>offset</code> (انظر فقرة البنية العامة) باستخدام استدعاء النظام <code>pwrite()‎</code>.   
+
يكتب التابع <code>pwrite</code> [[Ruby/String|السلسلة النصية]] المُمرَّرة إليه في موضع محدَّد من [[Ruby/IO|المجرى]] الذي استُدعي معه باستخدام استدعاء دالة النظام <code>pwrite()‎</code>.   
  
هذا مفيد مقارنة بالجمع بين التابعين <code>[[Ruby/IO/seek|seek]]</code> و <code>[[Ruby/IO/write|write]]</code> معا في كونه ذريًا (atomic)، مما يسمح لعدة [[Ruby/Thread|مهام فرعية]]/عمليات بالتشارك في نفس [[Ruby/IO|مجرى د/خ]]  لقراءة الملف من مواضع مختلفة. هذا سيتجاوز أي مساحة تخزين مؤقت للمستخدمين من [[Ruby/IO|مجرى د/خ]].  
+
هذا مفيد مقارنة بالجمع بين التابعين <code>[[Ruby/IO/seek|seek]]</code> و <code>[[Ruby/IO/write|write]]</code> معا في كونه ذريًا (atomic)، مما يسمح لعدة [[Ruby/Thread|مهام فرعية]]/عمليات بالتشارك في نفس [[Ruby/IO|المجرى]]  لقراءة الملف من مواضع مختلفة. هذا سيتجاوز أي مساحة تخزين مؤقت للمستخدمين من [[Ruby/IO|المجرى]].  
  
سيعيد التابع <code>pwrite</code> عدد البايتات المكتوبة. وسيُطلق الاستثناء <code>SystemCallError</code> في حال حدوث خطأ، أو <code>NotImplementedError</code> إذا لم يكن نظام الشغيل يدعم استدعاء النظام.
+
سيعيد التابع <code>pwrite</code> عدد البايتات المكتوبة، أو سيُطلق الاستثناء <code>[[Ruby/SystemCallError|SystemCallError]]</code> في حال حدوث خطأ، أو <code>[[Ruby/NotImplementedError|NotImplementedError]]</code> إذا لم يكن نظام الشغيل يدعم استدعاء النظام.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">pwrite(string, offset) → integer‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">pwrite(string, offset) → integer‎</syntaxhighlight>
 
==المعاملات==
 
==المعاملات==
 
===<code>string‎</code>===
 
===<code>string‎</code>===
[[Ruby/String|سلسلة نصية]]
+
[[Ruby/String|سلسلة نصية]] يراد كتابتها على المجرى المعطى.
 
===<code>offset‎</code>===
 
===<code>offset‎</code>===
عدد صحيح يمثل الإزاحة
+
[[Ruby/Integer|عدد صحيح]] يمثل مقدار إزاحة موضع المؤشر إلى المكان الذي يراد كتابة السلسلة النصية <code>string</code> فيه.
==القيمة المُعادة==
+
==القيمة المعادة==
يعيد التابع <code>pwrite</code> عدد البايتات المكتوبة
+
يعاد عدد صحيح يمثِّل عدد البايتات المكتوبة في المجرى.
  
 
==أمثلة==
 
==أمثلة==
سطر 24: سطر 24:
 
end
 
end
 
File.read("out")          #=> "\u0000\u0000\u0000ABCDEF"‎</syntaxhighlight>
 
File.read("out")          #=> "\u0000\u0000\u0000ABCDEF"‎</syntaxhighlight>
==انظر أيضا==
+
==انظر أيضًا==
* التابع <code>[[Ruby/IO/puts|puts]]</code>: يكتب الكائن(اات) المعطى في [[Ruby/IO|مجرى د/خ]]
+
* التابع [[Ruby/IO/printf|<code>printf</code>]]: ينسق الكائنات المُمرَّرة إليه ثم يكتبها في المجرى الذي استدعي معه. 
* التابع <code>[[Ruby/IO/read-i|read]]</code>: يقرأ <code>length</code> بايت من [[Ruby/IO|مجرى د/خ]].
+
 
 +
* التابع <code>[[Ruby/IO/puts|puts]]</code>: يكتب الكائن(ات) المُمرَّرة إليه في المجرى الذي استُدعي معه، ويضيف سطرًا جديدًا بعد الأسطر التي لا تنتهي بمحرف السطر الجديد ثم يعيد القيمة <code>nil</code>.
 +
* التابع <code>[[Ruby/IO/read-i|read]]</code>: يقرأ عددًا محدَّدًا من البايتات من [[Ruby/IO|المجرى]] الذي استدعي معه
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-pwrite قسم التابع pwrite‎ في الصنف IO‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-pwrite قسم التابع pwrite‎ في الصنف IO‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 08:28، 23 ديسمبر 2018

يكتب التابع 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: يقرأ عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه

مصادر