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

من موسوعة حسوب
< Ruby‏ | IO
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>copy_stream‎</code> الخاص بالصنف <code>IO</code> في روبي}}</noinclude> تصنيف: Ruby تصن...')
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby IO]]
 
[[تصنيف: Ruby IO]]
ينسخ التابع <code>[[Ruby/IO/copy_stream|::copy_stream]]</code> المصدر المعطى <code>src</code> إلى <code>dst</code> (انظر فقرة البنية العامة). الوسيطان <code>src</code> و <code>dst</code> يمكن أن يكونا إما اسماء ملفات، أو كائن مشابهة للصنف IO. يجب أن يكون للكائنات المشابهة لـ IO بالنسبة للوسيط <code>src</code> التابع <code>[[Ruby/IO/readpartial|readpartial]]</code> أو <code>[[Ruby/IO/read-i|read]]</code>. كما يجب أن يكون للكائنات المشابهة لـ IO بالنسبة للوسيط <code>dst</code> التابع <code>[[Ruby/IO/write-i|write]]</code>. (يمكن استخدام الآليات خاصة، مثل استدعاء نظام sendfile، في بعض الحالات المناسبة.)
+
ينسخ التابع <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>)
  
في حال عدم إعطاء الوسائط الاختيارية، فإن موضع بدء النسخة سيكون هو بداية الملف، أو موضع التأشير الحالي في الملف الخاص ب[[Ruby/IO|مجرى د/خ]] (<code>[[Ruby/IO|IO]]</code>). أما موضع نهاية النسخة فسيكون عند نهاية الملف.
+
يُعيد هذا التابع عدد البايتات المنسوخة.
  
في حال إعطاء <code>copy_length</code>، فلن يتجاوز عدد البايتات المنسوخة القيمة <code>copy_length</code>.
+
في حال عدم إعطاء الوسائط الاختيارية، فإن موضع بدء النسخ سيكون هو بداية الملف، أو موضع الإزاحة (offset) الحالي في ملف [[Ruby/IO|المجرى د/خ]] المستقبِل. أما موضع نهاية النسخ فسيكون عند نهاية الملف.
  
في حال إعطاء <code>src_offset</code>، فسيحدد موضع بدء النسخة.
+
في حال إعطاء الوسيط <code>copy_length</code>، فلن يتجاوز عدد البايتات المنسوخة القيمة <code>copy_length</code>.
  
عند تحديد <code>src_offset</code>، وعندما يكون الوسيط <code>src</code> [[Ruby/IO|مجرى د/خ]] (<code>[[Ruby/IO|IO]]</code>)، فلن يحرك التابع <code>[[Ruby/IO/copy_stream|::copy_stream]]</code> موضع إزاحة الملف الحالي.
+
يحدد الوسيط <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>ما عدا أنه يفتح الملف في الوضع الثنائي (binary mode) وبالترميز ASCII-8BIT ‏("wb: ASCII-8BIT‏")‏.
+
*التابع <code>[[Ruby/IO/binwrite|binwrite]]</code>: التابع <code>binwrite</code> مشابه للتابع <code>IO.write</code>، ما عدا أنه يفتح الملف في الوضع الثنائي (binary mode) وبالترميز ASCII-8BIT‏.
* التابع <code>[[Ruby/IO/for_fd|for_fd]]</code>: مرادف للتابع <code>IO.new</code>.
 
 
==مصادر==
 
==مصادر==
 
*[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‏.

مصادر