Scroll to navigation

posix_madvise(3) Library Functions Manual posix_madvise(3)

الاسم

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

المكتبة

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

موجز

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

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

posix_madvise():


_POSIX_C_SOURCE >= 200112L

الوصف

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

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

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

قيمة الإرجاع

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

الأخطاء

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

الإصدارات

يسمح POSIX.1 للتنفيذ بتوليد خطأ إذا كان size يساوي 0. في لينكس، يُسمح بتحديد size كـ 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.

8 فبراير 2026 صفحات دليل لينكس 6.18