الفرق بين المراجعتين لصفحة: «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). | |||
المقصود بـ "البيانات" هي الحيز من الملف الحالي الذي يبدأ عند الإزاحة <code>offset</code> (انظر قسم البينة العامة) ويمتد حتى <code>len</code> بايت. إن كان <code>len</code> يساوي <code>0</code>، فسينتهي الحيّز عند البايت الأخير من الملف. افتراضيًّا، كلا الوسيطين <code>offset</code> و <code>len</code> يساويان <code>0</code>، أي أن النصيحة تنطبق على الملف بأكمله. | |||
في حالة حدوث خطأ، سيُطلَق أحد الاستثناءات التالية: | |||
* <code>[[Ruby/IOError|IOError]]</code>: [[Ruby/IO|مجرى د/خ]] مغلق. | |||
* <code>Errno::EBADF</code>: واصف الملف (file descriptor) الحالي غير صالح. | |||
* <code>Errno::EINVAL</code>: تم إعطاء قيمة غير صالحة للوسيط <code>advice</code>. | |||
* <code>Errno::ESPIPE</code>: يشير واصف الملف الحالي إلى أنبوب (pipe) أو أنبوب مسمى (FIFO). (يطلق في لينكس الخطأ <code>Errno::EINVAL</code> في هذه الحالة). | |||
* <code>[[Ruby/TypeError|TypeError]]</code>: إما أنّ الوسيط <code>advice</code> ليس [[Ruby/Symbol|رمزً]]ا، أو أنّ أحد الوسائط الأخرى ليس [[Ruby/Integer|عددًا صحيحً]]ا. | |||
* <code>[[Ruby/RangeError|RangeError]]</code>: أحد الوسائط المعطاة كبير جدًا، أو صغير جدًا. | |||
هذه القائمة ليست شاملة لجميع الاستثناءات؛ فهناك أخطاء <code>[[Ruby/Errno|Errno]]</code>أخرى، كما أن الاستثناءات ممكنة أيضًا. | |||
في حالة حدوث خطأ، | |||
<code>IOError</code> | |||
[[Ruby/IO|مجرى د/خ]] | |||
<code>Errno::EBADF</code> | |||
واصف الملف | |||
<code>Errno::EINVAL</code> | |||
تم إعطاء قيمة غير صالحة للوسيط <code>advice</code>. | |||
<code>Errno::ESPIPE</code> | |||
يشير واصف الملف | |||
<code>TypeError</code> | |||
إما أنّ الوسيط <code>advice</code> ليس [[Ruby/Symbol| | |||
أحد | |||
هذه القائمة ليست | |||
الاستثناءات ممكنة | |||
==البنية العامة== | ==البنية العامة== | ||
<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>normal:</code> - لا نصيحة (advice) لتقديمها؛ ستُعتمَد الإعدادات الافتراضية للملفات المفتوحة. | |||
* <code>:sequential</code> - سيتم الوصول إلى البيانات بالتتابع، مع قراءة مواضع الإزاحة (offsets) الدنيا قبل العليا. | |||
* <code>:random</code> - سيتم الوصول إلى البيانات بترتيب عشوائي. | |||
* <code>:willneed</code> - سيتم الوصول إلى البيانات في المستقبل القريب. | |||
* <code>:dontneed</code> - لن يتم الوصول إلى البيانات في المستقبل القريب. | |||
* <code>:noreuse</code> - لن يتم الوصول إلى البيانات إلا مرةً واحدةً فقط. | |||
دلالات التوجيهات التي يقدمها المعامل <code>advice</code> تعتمد على النظام المُستخدَم. انظر صفحة الدليل man للدالة <code>posix_fadvise</code> لمزيد من التفاصيل. | |||
===<code>offset</code>=== | ===<code>offset</code>=== | ||
عدد صحيح يمثل الإزاحة | عدد صحيح يمثل الإزاحة. القيمة الافتراضية هي: 0. | ||
===<code>len</code>=== | ===<code>len</code>=== | ||
==القيمة | عدد صحيح يمثل الطول الذي يشكل حيز البيانات. القيمة الافتراضية هي: 0. | ||
==انظر | |||
* | ==القيمة المعادة== | ||
تعاد القيمة <code>nil</code>. | |||
==انظر أيضًا== | |||
*التابع [[Ruby/IO/open|<code>open</code>]]: يشبه التابعَ <code>[[Ruby/IO/new|new]]</code> تمامًا عند استدعائه دون كتلة، أو يُمرّر الكائن <code>IO</code> الذي جرى إنشاؤه كوسيط إلى الكتلة المعطاة ثم يعيد الناتج الذي تعيده الكتلة. | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-advise قسم | *[http://ruby-doc.org/core-2.5.1/IO.html#method-i-advise قسم التابع advise في الصنف IO في توثيق روبي الرسمي.] | ||
المراجعة الحالية بتاريخ 08:23، 22 ديسمبر 2018
يعلن التابع advise عن نية الوصول إلى بيانات الملف الحالي وفق نمط محدد.
في أنظمة التشغيل التي لا تدعم استدعاء النظام posix_fadvise(2)، هذا التابع سيكون عمليةً فارغةً (no-op).
المقصود بـ "البيانات" هي الحيز من الملف الحالي الذي يبدأ عند الإزاحة 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
يأخذ هذا المعامل أحد الرموز التالية:
normal:- لا نصيحة (advice) لتقديمها؛ ستُعتمَد الإعدادات الافتراضية للملفات المفتوحة.:sequential- سيتم الوصول إلى البيانات بالتتابع، مع قراءة مواضع الإزاحة (offsets) الدنيا قبل العليا.
:random- سيتم الوصول إلى البيانات بترتيب عشوائي.:willneed- سيتم الوصول إلى البيانات في المستقبل القريب.-
:dontneed- لن يتم الوصول إلى البيانات في المستقبل القريب. :noreuse- لن يتم الوصول إلى البيانات إلا مرةً واحدةً فقط.
دلالات التوجيهات التي يقدمها المعامل advice تعتمد على النظام المُستخدَم. انظر صفحة الدليل man للدالة posix_fadvise لمزيد من التفاصيل.
offset
عدد صحيح يمثل الإزاحة. القيمة الافتراضية هي: 0.
len
عدد صحيح يمثل الطول الذي يشكل حيز البيانات. القيمة الافتراضية هي: 0.
القيمة المعادة
تعاد القيمة nil.
انظر أيضًا
- التابع
open: يشبه التابعَnewتمامًا عند استدعائه دون كتلة، أو يُمرّر الكائنIOالذي جرى إنشاؤه كوسيط إلى الكتلة المعطاة ثم يعيد الناتج الذي تعيده الكتلة.