الفرق بين المراجعتين لصفحة: «Ruby/IO/copy stream»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>copy_stream</code> الخاص بالصنف <code>IO</code> في روبي}}</noinclude> تصنيف: Ruby تصن...' |
لا ملخص تعديل |
||
| سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby IO]] | [[تصنيف: Ruby IO]] | ||
ينسخ التابع <code>[[Ruby/IO/ | ينسخ التابع <code>[[Ruby/IO/copy stream|copy_stream]]</code> المصدر المعطى <code>src</code> في المورد <code>dst</code> (انظر فقرة البنية العامة). الوسيطان <code>src</code> و <code>dst</code> يمكن أن يكونا اسماء ملفات، أو كائنات مشابهة للصنف <code>IO</code>. | ||
الكائنات المشابهة لـ <code>IO</code> المُمررة في الوسيط <code>src</code> يجب أن تُعرّف التابع <code>[[Ruby/IO/readpartial|readpartial]]</code> أو <code>[[Ruby/IO/read-i|read]]</code>. كما يجب أن يكون للكائنات المشابهة لـ <code>IO</code> الممررة في الوسيط <code>dst</code> التابع <code>[[Ruby/IO/write-i|write]]</code>. (في بعض الحالات، يمكن استخدام آليات خاصة، مثل استدعاء النظام <code>sendfile</code>) | |||
يُعيد هذا التابع عدد البايتات المنسوخة. | |||
في حال إعطاء | في حال عدم إعطاء الوسائط الاختيارية، فإن موضع بدء النسخ سيكون هو بداية الملف، أو موضع الإزاحة (offset) الحالي في ملف [[Ruby/IO|المجرى د/خ]] المستقبِل. أما موضع نهاية النسخ فسيكون عند نهاية الملف. | ||
في حال إعطاء <code> | في حال إعطاء الوسيط <code>copy_length</code>، فلن يتجاوز عدد البايتات المنسوخة القيمة <code>copy_length</code>. | ||
عند تحديد <code>src_offset</code>، وعندما يكون الوسيط <code>src</code> [[Ruby/IO|مجرى د/خ]] | يحدد الوسيط <code>src_offset</code>، في حال إعطائه، موضع بدء النسخ. | ||
عند تحديد <code>src_offset</code>، وعندما يكون الوسيط <code>src</code> عبارة عن [[Ruby/IO|مجرى د/خ]]، فلن يحرك التابع <code>[[Ruby/IO/copy stream|copy_stream]]</code> موضع إزاحة الملف الحالي. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">copy_stream(src, dst) | <syntaxhighlight lang="ruby">copy_stream(src, dst) | ||
| سطر 20: | سطر 22: | ||
==المعاملات== | ==المعاملات== | ||
===<code>src</code>=== | ===<code>src</code>=== | ||
المصدر. | |||
===<code>dst</code>=== | ===<code>dst</code>=== | ||
المورد. | |||
===<code>copy_length</code>=== | ===<code>copy_length</code>=== | ||
طول النسخ. | |||
===<code>src_offset</code>=== | ===<code>src_offset</code>=== | ||
الإزاحة. | |||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/IO/binwrite|binwrite]]</code>: التابع <code>binwrite</code> مشابه للتابع <code>IO.write</code> | *التابع <code>[[Ruby/IO/binwrite|binwrite]]</code>: التابع <code>binwrite</code> مشابه للتابع <code>IO.write</code>، ما عدا أنه يفتح الملف في الوضع الثنائي (binary mode) وبالترميز ASCII-8BIT. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/IO.html#method-c-copy_stream قسم التابع copy_stream في الصنف IO في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/IO.html#method-c-copy_stream قسم التابع copy_stream في الصنف IO في توثيق روبي الرسمي.] | ||
مراجعة 21:01، 12 نوفمبر 2018
ينسخ التابع copy_stream المصدر المعطى src في المورد dst (انظر فقرة البنية العامة). الوسيطان src و dst يمكن أن يكونا اسماء ملفات، أو كائنات مشابهة للصنف IO.
الكائنات المشابهة لـ IO المُمررة في الوسيط src يجب أن تُعرّف التابع readpartial أو read. كما يجب أن يكون للكائنات المشابهة لـ IO الممررة في الوسيط dst التابع write. (في بعض الحالات، يمكن استخدام آليات خاصة، مثل استدعاء النظام sendfile)
يُعيد هذا التابع عدد البايتات المنسوخة.
في حال عدم إعطاء الوسائط الاختيارية، فإن موضع بدء النسخ سيكون هو بداية الملف، أو موضع الإزاحة (offset) الحالي في ملف المجرى د/خ المستقبِل. أما موضع نهاية النسخ فسيكون عند نهاية الملف.
في حال إعطاء الوسيط copy_length، فلن يتجاوز عدد البايتات المنسوخة القيمة copy_length.
يحدد الوسيط src_offset، في حال إعطائه، موضع بدء النسخ.
عند تحديد src_offset، وعندما يكون الوسيط src عبارة عن مجرى د/خ، فلن يحرك التابع copy_stream موضع إزاحة الملف الحالي.
البنية العامة
copy_stream(src, dst)
copy_stream(src, dst, copy_length)
copy_stream(src, dst, copy_length, src_offset)
المعاملات
src
المصدر.
dst
المورد.
copy_length
طول النسخ.
src_offset
الإزاحة.
انظر أيضا
- التابع
binwrite: التابعbinwriteمشابه للتابعIO.write، ما عدا أنه يفتح الملف في الوضع الثنائي (binary mode) وبالترميز ASCII-8BIT.