الفرق بين المراجعتين لصفحة: «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.