Scroll to navigation

posix_madvise(3) Library Functions Manual posix_madvise(3)

الاسم

posix_madvise - تقديم نصح حول أنماط استخدام الذاكرة

المكتبة

مكتبة سي المعيارية (libc، -lc)

موجز

#include <sys/mman.h>
int posix_madvise(void addr[.len], size_t len, int advice);

متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

posix_madvise():


_POSIX_C_SOURCE >= 200112L

الوصف

تسمح الدالة posix_madvise() للتطبيق بإسداء النصح للنظام حول أنماط الاستخدام المتوقعة للذاكرة في نطاق العناوين الذي يبدأ من addr ويمتد لـ len بايت. للنظام حرية استخدام هذه النصيحة لتحسين أداء الوصولات إلى الذاكرة (أو تجاهل النصيحة بالكامل)، لكن استدعاء posix_madvise() لا يؤثر على دلالات الوصول إلى الذاكرة في النطاق المحدد.

المعامل advice هو أحد ما يلي:

ليس لدى التطبيق نصح خاص بخصوص أنماط استخدامه للذاكرة لنطاق العناوين المحدد. هذا هو السلوك المبدئي.
يتوقع التطبيق الوصول إلى نطاق العناوين المحدد بشكل تسلسلي، منتقلاً من العناوين المنخفضة إلى العناوين المرتفعة. وبالتالي، يمكن قراءة الصفحات في هذه المنطقة بشكل استباقي، وقد تُحرر بعد الوصول إليها بفترة قصيرة.
يتوقع التطبيق الوصول إلى نطاق العناوين المحدد بشكل عشوائي. وبالتالي، قد تكون القراءة الاستباقية أقل فائدة من المعتاد.
يتوقع التطبيق الوصول إلى نطاق العناوين المحدد في المستقبل القريب. وبالتالي، قد تكون القراءة الاستباقية مفيدة.
يتوقع التطبيق أنه لن يصل إلى نطاق العناوين المحدد في المستقبل القريب.

قيمة الإرجاع

عند النجاح، تُرجع posix_madvise() 0. عند الفشل، تُرجع رقم خطأ موجب.

الأخطاء

addr ليس مضاعفًا لحجم صفحة النظام أو len سالب.
advice غير صالح.
العناوين في النطاق المحدد جزئياً أو كلياً خارج مساحة عناوين المستدعي.

الإصدارات

يسمح POSIX.1 للتطبيق بتوليد خطأ إذا كان len يساوي 0. في لينكس، يُسمح بتحديد len كـ 0 (كعملية عدمية ناجحة).

في glibc، تُنفَّذ هذه الدالة باستخدام madvise(2). لكن، منذ glibc 2.6، يُعامل POSIX_MADV_DONTNEED كعملية عدمية، لأن القيمة المقابلة في madvise(2)، MADV_DONTNEED، لها دلالات تدميرية.

المعايير

POSIX.1-2008.

التاريخ

glibc 2.2. POSIX.1-2001.

انظر أيضًا

madvise(2)، posix_fadvise(2)

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

2 مايو 2024 صفحات دليل لينكس 6.9.1