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

من موسوعة حسوب
< Ruby‏ | IO
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.pwrite‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby I...')
 
ط (تدقيق)
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby IO]]
 
[[تصنيف: Ruby IO]]
يكتب التابع <code>pwrite</code> [[Ruby/String|السلسلة النصية]] المعطاة (انظر فقرة البنية العامة) في [[Ruby/IO|مجرى د/خ]] <code>ios</code> عند موضع الإزاحة <code>offset</code> باستخدام استدعاء النظام pwrite ()‎.  هذا مفيد مقارنة بالجمع بين <code>[[Ruby/IO/seek|#seek]]</code> و <code>[[Ruby/IO/write|#write]]</code> في كونه ذريًا (atomic)، مما يسمح لعدة [[Ruby/Thread|مهام فرعية]]/عمليات بالتشارك في نفس [[Ruby/IO|مجرى د/خ]] <code>[[Ruby/IO|IO]]</code> لقراءة الملف من مواضع مختلفة. هذا سيتجاوز أي مساحة تخزين مؤقت للمستخدمين من طبقة [[Ruby/IO|مجرى د/خ]] <code>[[Ruby/IO|IO]]</code>. سيعيد عدد البايتات المكتوبة. وسيُطلق الاستثناء <code>SystemCallError</code> في حال حدوث خطأ، أو <code>NotImplementedError</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>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>:
 
مثال على استخدام التابع <code>pwrite‎</code>:
سطر 18: سطر 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|مجرى د/خ]] <code>ios</code>. ويكتب سطرًا جديدا بعد أي سطر لا ينتهي بالفعل بمحرف السطر الجديد. ثم يعيد <code>nil</code>.
+
* التابع [[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: يقرأ عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه

مصادر