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

من موسوعة حسوب
< Ruby‏ | IO
مراجعة 10:26، 13 نوفمبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.advise‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby I...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعلن التابع advise عن نية الوصول إلى البيانات من الملف الحالي وفق نمط محدد. على أنظمة التشغيل التي لا تدعم استدعاء النظام posix_fadvise(2)، هذه التابع عبارة عن عملية فارغة (no-op).

الوسيط advice سيكون أحد الرموز التالية:

normal

لا نصيحة لتقديمها؛ الإعدادات الافتراضية لملف مفتوح.

‎:sequential

سيتم الدخول إلى البيانات بالتتابع، مع قراءة مواضع الإزاحة (offsets) الدنياا قبل العليا.

‎:random ‎

سيتم الدخول إلى البيانات بترتيب عشوائي.

‎:willneed

سيتم الدخول إلى البيانات في المستقبل القريب.

‎:dontneed‎

لن يتم الدخول إلى البيانات في المستقبل القريب.

‎:noreuse

لن يتم الدخول إلى البيانات إلا مرة واحدة فقط.

دلالات التوجيهات التي يقدمها الوسيط advice تعتمد على النظام المُستخدم. انظر صفحة man 2 posix_fadvise لمزيد من التفاصيل.

المقصود ب"البيانات" الحيز من الملف الحالي الذي يبدأ عند offset ويمتد لـ len بايت. إن كان len يساوي 0، فسينتهي الحيّز عند البايت الأخير من الملف. افتراضيا، كلا الوسيطين offset و len يساويان 0، أي أن النصيحة تنطبق على الملف بأكمله.

في حالة حدوث خطأ، سيُطلق أحد الاستثناءات التالية:

IOError

مجرى د/خ IO مغلق.

Errno::EBADF

واصف الملف الخاص بالملف الحالي غير صالح.

Errno::EINVAL

تم إعطاء قيمة غير صالحة للوسيط advice.

Errno::ESPIPE

يشير واصف الملف الخاص بالملف الحالي إلى أنبوب أو أنبوب مسمى (FIFO). (يطلق اللينكس الخطأ Errno::EINVAL في هذه الحالة).

TypeError

إما أنّ الوسيط advice ليس رمزا Symbol، أو أنّ أحد الوسائط الأخرى ليس عدد صحيحا Integer.

RangeError

أحد من الوسائط المعطاة كبير جدا، أو صغير جدا.

هذه القائمة ليست شاملة؛ أخطاء أخرى Errno

الاستثناءات ممكنة أيضا.

البنية العامة

advise(advice, offset=0, len=0)  nil

المعاملات

advice‎

offset‎

عدد صحيح يمثل الإزاحة

len‎

القيمة المُعادة

انظر أيضا

  • التابع <<: مجرى الإخراج النصي String - يكتب obj (انظر فقرة البنية العامة) في المجرى ios. سيتم تحويل obj إلى سلسلة نصية باستخدام to_s.
  • التابع autoclose=: يُعيّن قيمة راية الإغلاق التلقائي.

مصادر