الفرق بين المراجعتين لصفحة: «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>offset</code> (انظر فقرة البنية العامة) باستخدام استدعاء النظام <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>SystemCallError</code> في حال حدوث خطأ، أو <code>NotImplementedError</code> إذا لم يكن نظام الشغيل يدعم استدعاء النظام.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">pwrite(string, offset) → integer‎</syntaxhighlight>
<syntaxhighlight lang="ruby">pwrite(string, offset) → integer‎</syntaxhighlight>
سطر 12: سطر 16:
عدد صحيح يمثل الإزاحة
عدد صحيح يمثل الإزاحة
==القيمة المُعادة==
==القيمة المُعادة==
يعيد التابع <code>pwrite</code> عدد البايتات المكتوبة
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>pwrite‎</code>:
مثال على استخدام التابع <code>pwrite‎</code>:
سطر 19: سطر 25:
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>.
* التابع <code>[[Ruby/IO/puts|puts]]</code>: يكتب  الكائن(اات) المعطى في [[Ruby/IO|مجرى د/خ]]  
* التابع <code>[[Ruby/IO/read-i|read]]</code>: يقرأ  <code>length</code> بايتًا (انظر فقرة البنية العامة) من [[Ruby/IO|مجرى د/خ]].
* التابع <code>[[Ruby/IO/read-i|read]]</code>: يقرأ  <code>length</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‎ في توثيق روبي الرسمي.]

مراجعة 16:55، 13 نوفمبر 2018

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

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

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

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

pwrite(string, offset)  integer

المعاملات

string‎

سلسلة نصية

offset‎

عدد صحيح يمثل الإزاحة

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

يعيد التابع pwrite عدد البايتات المكتوبة

أمثلة

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

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

انظر أيضا

مصادر