التابع IO.advise في روبي
يعلن التابع 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=: يُعيّن قيمة راية الإغلاق التلقائي.