الفرق بين المراجعتين لصفحة: «Ruby/IO/advise»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.advise</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby I...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby IO]] | [[تصنيف: Ruby IO]] | ||
يعلن التابع <code>advise</code> عن نية الوصول إلى | يعلن التابع <code>advise</code> عن نية الوصول إلى بيانات الملف الحالي وفق نمط محدد. | ||
على أنظمة التشغيل التي لا تدعم استدعاء النظام <code>posix_fadvise(2)</code>، هذا التابع سيكون عملية فارغة (no-op). | |||
:normal | الوسيط <code>advice</code> (انظر فقرة البنية العامة) سيكون أحد الرموز التالية: | ||
* <code>normal:</code> - لا نصيحة لتقديمها؛ ستُعتمد الإعدادات الافتراضية للملفات المفتوحة. | |||
* <code>:sequential</code> - سيتم الدخول إلى البيانات بالتتابع، مع قراءة مواضع الإزاحة (offsets) الدنيا قبل العليا. | |||
* <code>:random</code> - سيتم الدخول إلى البيانات بترتيب عشوائي. | |||
* <code>:willneed</code> - سيتم الدخول إلى البيانات في المستقبل القريب. | |||
* <code>:dontneed</code> - لن يتم الدخول إلى البيانات في المستقبل القريب. | |||
* <code>:noreuse</code> - لن يتم الدخول إلى البيانات إلا مرة واحدة فقط. | |||
دلالات التوجيهات المُقدمة من <code>advice</code> تعتمد على النظام المُستخدم. انظر صفحة<code>posix_fadvise</code> لمزيد من التفاصيل. | |||
المقصود ب"البيانات": الحيز من الملف الحالي الذي يبدأ عند الإزاحة <code>offset</code> ويمتد لـ <code>len</code> بايت. إن كان <code>len</code> يساوي <code>0</code>، فسينتهي الحيّز عند البايت الأخير من الملف. افتراضيا، كلا الوسيطين <code>offset</code> و <code>len</code> يساويان <code>0</code>، أي أن النصيحة تنطبق على الملف بأكمله. | |||
المقصود ب"البيانات" الحيز من الملف الحالي الذي يبدأ عند <code>offset</code> ويمتد لـ <code>len</code> بايت. إن كان <code>len</code> يساوي | |||
في حالة حدوث خطأ، سيُطلق أحد الاستثناءات التالية: | في حالة حدوث خطأ، سيُطلق أحد الاستثناءات التالية: | ||
* <code>IOError</code>: [[Ruby/IO|مجرى د/خ]] مغلق. | |||
<code>IOError</code> | * <code>Errno::EBADF</code>: واصف الملف (file descriptor) الحالي غير صالح. | ||
* <code>Errno::EINVAL</code>: تم إعطاء قيمة غير صالحة للوسيط <code>advice</code>. | |||
[[Ruby/IO|مجرى د/خ]] | * <code>Errno::ESPIPE</code>: يشير واصف الملف الحالي إلى أنبوب (pipe) أو أنبوب مسمى (FIFO). (يطلق اللينكس الخطأ <code>Errno::EINVAL</code> في هذه الحالة). | ||
* <code>TypeError</code>: إما أنّ الوسيط <code>advice</code> ليس [[Ruby/Symbol|رمز]]ا، أو أنّ أحد الوسائط الأخرى ليس [[Ruby/Integer|عدد صحيح]]ا. | |||
<code>Errno::EBADF</code> | * <code>RangeError</code>: أحد الوسائط المعطاة كبير جدا، أو صغير جدا. | ||
هذه القائمة ليست شاملة؛ فهناك أخطاء <code>[[Ruby/Errno|Errno]]</code>أخرى، كما أن الاستثناءات ممكنة أيضا. | |||
واصف الملف | |||
<code>Errno::EINVAL</code> | |||
تم إعطاء قيمة غير صالحة للوسيط <code>advice</code>. | |||
<code>Errno::ESPIPE</code> | |||
يشير واصف الملف | |||
<code>TypeError</code> | |||
إما أنّ الوسيط <code>advice</code> ليس [[Ruby/Symbol|رمز]] | |||
<code>RangeError</code> | |||
أحد | |||
هذه القائمة ليست شاملة؛ أخطاء | |||
الاستثناءات ممكنة أيضا. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">advise(advice, offset=0, len=0) → nil</syntaxhighlight> | <syntaxhighlight lang="ruby">advise(advice, offset=0, len=0) → nil</syntaxhighlight> | ||
==المعاملات== | ==المعاملات== | ||
===<code>advice</code>=== | ===<code>advice</code>=== | ||
النصيحة أو التوجيه | |||
===<code>offset</code>=== | ===<code>offset</code>=== | ||
عدد صحيح يمثل الإزاحة | عدد صحيح يمثل الإزاحة | ||
===<code>len</code>=== | ===<code>len</code>=== | ||
عدد صحيح يمثل الطول | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
يعيد التابع <code>advise</code> القيمة <code>nil</code>. | |||
==انظر أيضا== | ==انظر أيضا== | ||
*التابع <code>[[Ruby/IO/autoclose-3D|autoclose=]]</code>: يُعيّن قيمة راية الإغلاق التلقائي. | |||
* التابع <code>[[Ruby/IO/autoclose-3D|autoclose=]]</code>: يُعيّن قيمة راية الإغلاق التلقائي. | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-advise قسم التابع advise في الصنف IO في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/IO.html#method-i-advise قسم التابع advise في الصنف IO في توثيق روبي الرسمي.] |
مراجعة 10:37، 13 نوفمبر 2018
يعلن التابع advise
عن نية الوصول إلى بيانات الملف الحالي وفق نمط محدد.
على أنظمة التشغيل التي لا تدعم استدعاء النظام posix_fadvise(2)
، هذا التابع سيكون عملية فارغة (no-op).
الوسيط advice
(انظر فقرة البنية العامة) سيكون أحد الرموز التالية:
normal:
- لا نصيحة لتقديمها؛ ستُعتمد الإعدادات الافتراضية للملفات المفتوحة.:sequential
- سيتم الدخول إلى البيانات بالتتابع، مع قراءة مواضع الإزاحة (offsets) الدنيا قبل العليا.
:random
- سيتم الدخول إلى البيانات بترتيب عشوائي.:willneed
- سيتم الدخول إلى البيانات في المستقبل القريب.-
:dontneed
- لن يتم الدخول إلى البيانات في المستقبل القريب. :noreuse
- لن يتم الدخول إلى البيانات إلا مرة واحدة فقط.
دلالات التوجيهات المُقدمة من advice
تعتمد على النظام المُستخدم. انظر صفحةposix_fadvise
لمزيد من التفاصيل.
المقصود ب"البيانات": الحيز من الملف الحالي الذي يبدأ عند الإزاحة offset
ويمتد لـ len
بايت. إن كان len
يساوي 0
، فسينتهي الحيّز عند البايت الأخير من الملف. افتراضيا، كلا الوسيطين offset
و len
يساويان 0
، أي أن النصيحة تنطبق على الملف بأكمله.
في حالة حدوث خطأ، سيُطلق أحد الاستثناءات التالية:
IOError
: مجرى د/خ مغلق.Errno::EBADF
: واصف الملف (file descriptor) الحالي غير صالح.Errno::EINVAL
: تم إعطاء قيمة غير صالحة للوسيطadvice
.Errno::ESPIPE
: يشير واصف الملف الحالي إلى أنبوب (pipe) أو أنبوب مسمى (FIFO). (يطلق اللينكس الخطأErrno::EINVAL
في هذه الحالة).TypeError
: إما أنّ الوسيطadvice
ليس رمزا، أو أنّ أحد الوسائط الأخرى ليس عدد صحيحا.RangeError
: أحد الوسائط المعطاة كبير جدا، أو صغير جدا.
هذه القائمة ليست شاملة؛ فهناك أخطاء Errno
أخرى، كما أن الاستثناءات ممكنة أيضا.
البنية العامة
advise(advice, offset=0, len=0) → nil
المعاملات
advice
النصيحة أو التوجيه
offset
عدد صحيح يمثل الإزاحة
len
عدد صحيح يمثل الطول
القيمة المُعادة
يعيد التابع advise
القيمة nil
.
انظر أيضا
- التابع
autoclose=
: يُعيّن قيمة راية الإغلاق التلقائي.