التابع IO.advise
في روبي
يعلن التابع 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
الذي جرى إنشاؤه كوسيط إلى الكتلة المعطاة ثم يعيد الناتج الذي تعيده الكتلة.