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

مصادر