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