.\" -*- coding: UTF-8 -*- .\" Copyright 2021, Suren Baghdasaryan .\" Copyright 2021, Minchan Kim .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Commit ecb8ac8b1f146915aa6b96449b66dd48984caacc .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH process_madvise 2 "22 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم process_madvise \- تقديم نصيحة حول استخدام الذاكرة لعملية .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBssize_t process_madvise(size_t \fP\fIn\fP\fB;\fP \fB int \fP\fIpidfd\fP\fB, const struct iovec \fP\fIiovec\fP\fB[\fP\fIn\fP\fB],\fP \fB size_t \fP\fIn\fP\fB, int \fP\fIadvice\fP\fB, unsigned int \fP\fIflags\fP\fB);\fP .fi .SH الوصف استدعاء النظام \fBprocess_madvise\fP() يُستخدم لتقديم نصيحة أو توجيهات للنواة حول نطاقات العناوين لعملية أخرى أو لعملية الاستدعاء. يقدم النصيحة لنطاقات العناوين الموصوفة بواسطة \fIiovec\fP و \fIn\fP. الهدف من هذه النصيحة هو تحسين أداء النظام أو التطبيق. .P الوسيطة \fIpidfd\fP هي واصف ملف PID (انظر \fBpidfd_open\fP(2)) الذي يحدد العملية التي ستُطبق عليها النصيحة. .P المؤشر \fIiovec\fP يشير إلى مصفوفة من بنى \fIiovec\fP، الموصوفة في \fBiovec\fP(3type). .P \fIn\fP يحدد عدد العناصر في مصفوفة بنى \fIiovec\fP. يجب أن تكون هذه القيمة أقل من أو تساوي \fBIOV_MAX\fP (المُعرّفة في \fI\fP أو القابلة للوصول عبر الاستدعاء \fIsysconf(_SC_IOV_MAX)\fP). .P إذا تم التعامل مع عملية أخرى، أو قبل Linux 6.13، فإن الوسيطة \fIadvice\fP تكون إحدى القيم التالية: .TP \fBMADV_COLD\fP انظر \fBmadvise\fP(2). .TP \fBMADV_COLLAPSE\fP انظر \fBmadvise\fP(2). .TP \fBMADV_PAGEOUT\fP انظر \fBmadvise\fP(2). .TP \fBMADV_WILLNEED\fP انظر \fBmadvise\fP(2). .P منذ Linux 6.13، عند التعامل مع عملية الاستدعاء، يُسمح بأي علم نصيحة. .P المعامل \fIflags\fP محجوز للاستخدام المستقبلي؛ حاليًا، يجب تحديد هذا المعامل كـ 0. .P يتم فحص الوسيطتين \fIn\fP و \fIiovec\fP قبل تطبيق أي نصيحة. إذا كانت \fIn\fP كبيرة جدًا، أو \fIiovec\fP غير صالحة، فسيتم إرجاع خطأ فورًا ولن تُطبق أي نصيحة. .P قد تُطبق النصيحة على جزء فقط من \fIiovec\fP إذا كان أحد عناصرها يشير إلى منطقة ذاكرة غير صالحة في العملية البعيدة. لن تتم معالجة أي عناصر إضافية بعد تلك النقطة. (انظر المناقشة حول النصيحة الجزئية في RETURN VALUE.) .P .\" commit 96cfe2c0fd23ea7c2368d14f769d287e7ae1082e منذ Linux 5.12، يُحكم الإذن بتطبيق النصيحة على عملية أخرى بواسطة فحص وضع الوصول ptrace \fBPTRACE_MODE_READ_FSCREDS\fP (انظر \fBptrace\fP(2))؛ بالإضافة إلى ذلك، بسبب الآثار الأدائية لتطبيق النصيحة، يجب أن يمتلك المستدعي القدرة \fBCAP_SYS_NICE\fP (انظر \fBcapabilities\fP(7)). .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBprocess_madvise\fP() عدد البايتات التي نُصحت. قد تكون هذه القيمة المرجعة أقل من إجمالي عدد البايتات المطلوبة، إذا حدث خطأ بعد معالجة بعض عناصر \fIiovec\fP. يجب على المستدعي التحقق من القيمة المرجعة لتحديد ما إذا حدثت نصيحة جزئية. .P عند حدوث خطأ، يُرجع \-1 ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEBADF\fP \fIpidfd\fP ليس واصف ملف PID صالحاً. .TP \fBEFAULT\fP الذاكرة الموصوفة بواسطة \fIiovec\fP تقع خارج مساحة العناوين القابلة للوصول للعملية المشار إليها بواسطة \fIpidfd\fP. .TP \fBEINVAL\fP \fIflags\fP ليست 0. .TP \fBEINVAL\fP مجموع قيم \fIiov_len\fP لـ \fIiovec\fP يفيض قيمة \fIssize_t\fP. .TP \fBEINVAL\fP \fIn\fP كبير جدًا. .TP \fBENOMEM\fP تعذر تخصيص ذاكرة للنسخ الداخلية لهياكل \fIiovec\fP. .TP \fBEPERM\fP المستدعي لا يمتلك الإذن للوصول إلى مساحة العناوين للعملية \fIpidfd\fP. .TP \fBESRCH\fP العملية الهدف غير موجودة (أي أنها أُنهيت وانتُظر اكتمالها). .P انظر \fBmadvise\fP(2) للأخطاء الخاصة بـ \fIadvice\fP. .SH المعايير لينكس. .SH التاريخ .\" Linux commit ecb8ac8b1f146915aa6b96449b66dd48984caacc .\" glibc commit d19ee3473d68ca0e794f3a8b7677a0983ae1342e Linux 5.10، glibc 2.36. .P الدعم لاستدعاء النظام هذا اختياري، اعتمادًا على إعداد خيار التهيئة \fBCONFIG_ADVISE_SYSCALLS\fP. .P عندما ظهر استدعاء النظام هذا لأول مرة في Linux 5.10، كان الإذن بتطبيق النصيحة على عملية أخرى محكومًا بالكامل بواسطة فحص وضع الوصول ptrace \fBPTRACE_MODE_ATTACH_FSCREDS\fP (انظر \fBptrace\fP(2)). تم تخفيف هذا المطلب في Linux 5.12 بحيث لا يحتاج المستدعي إلى سيطرة كاملة على العملية المستهدفة. .SH "انظر أيضًا" \fBmadvise\fP(2)، \fBpidfd_open\fP(2)، \fBprocess_vm_readv\fP(2)، \fBprocess_vm_write\fP(2) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .