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