التابع IO.advise‎ في روبي

من موسوعة حسوب
< Ruby‏ | IO

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

مصادر