الفرق بين المراجعتين ل"Ruby/IO/pwrite"
اذهب إلى التنقل
اذهب إلى البحث
(أنشأ الصفحة ب'<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|السلسلة النصية]] المعطاة | + | يكتب التابع <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>[[Ruby/IO/puts|puts]]</code>: يكتب الكائن(اات) المعطى في [[Ruby/IO|مجرى د/خ]] |
− | * التابع <code>[[Ruby/IO/read-i|read]]</code>: يقرأ <code>length</code> | + | * التابع <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"