prctl(2)

الاسم
prctl - عمليات على عملية أو خيط

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

موجز
#include <linux/prctl.h>  /* تعريف ثوابت PR_* */
#include <sys/prctl.h>

int prctl(int op, ...);

الوصف
prctl() يتلاعب بجوانب مختلفة من سلوك الخيط أو العملية المستدعية.

prctl() تُستدعى مع وسيطة أولى تصف ما يجب فعله، ووسائط إضافية ذات دلالة تعتمد على الوسيطة الأولى. يمكن أن تكون الوسيطة الأولى:

PR_CAP_AMBIENT
PR_CAPBSET_READ
PR_CAPBSET_DROP
PR_SET_CHILD_SUBREAPER
PR_GET_CHILD_SUBREAPER
PR_SET_DUMPABLE
PR_GET_DUMPABLE
PR_SET_ENDIAN
PR_GET_ENDIAN
PR_SET_FP_MODE
PR_GET_FP_MODE
PR_SET_FPEMU
PR_GET_FPEMU
PR_SET_FPEXC
PR_GET_FPEXC
PR_SET_IO_FLUSHER
PR_GET_IO_FLUSHER
PR_SET_KEEPCAPS
PR_GET_KEEPCAPS
PR_MCE_KILL
PR_MCE_KILL_GET
PR_SET_MM
PR_SET_VMA
PR_MPX_ENABLE_MANAGEMENT
PR_MPX_DISABLE_MANAGEMENT
PR_SET_NAME
PR_GET_NAME
PR_SET_NO_NEW_PRIVS
PR_GET_NO_NEW_PRIVS
PR_PAC_RESET_KEYS
PR_SET_PDEATHSIG
PR_GET_PDEATHSIG
PR_SET_PTRACER
PR_SET_SECCOMP
PR_GET_SECCOMP
PR_SET_SECUREBITS
PR_GET_SECUREBITS
PR_GET_SPECULATION_CTRL
PR_SET_SPECULATION_CTRL
PR_SVE_SET_VL
PR_SVE_GET_VL
PR_SET_SYSCALL_USER_DISPATCH
PR_SET_TAGGED_ADDR_CTRL
PR_GET_TAGGED_ADDR_CTRL
PR_TASK_PERF_EVENTS_DISABLE
PR_TASK_PERF_EVENTS_ENABLE
PR_SET_THP_DISABLE
PR_GET_THP_DISABLE
PR_GET_TID_ADDRESS
PR_SET_TIMERSLACK
PR_GET_TIMERSLACK
PR_SET_TIMING
PR_GET_TIMING
PR_SET_TSC
PR_GET_TSC
PR_SET_UNALIGN
PR_GET_UNALIGN
PR_GET_AUXV
PR_SET_MDWE
PR_GET_MDWE
PR_RISCV_SET_ICACHE_FLUSH_CTX
PR_FUTEX_HASH

قيمة الإرجاع
عند النجاح، تُرجع قيمة غير سالبة. عند حدوث خطأ، يُرجع -1، ويُضبط errno للإشارة إلى الخطأ.

الأخطاء

EINVAL
    قيمة op غير معروفة، أو غير مدعومة على هذا النظام.

EINVAL
    وسيطة غير مستخدمة غير صفرية.

الإصدارات
IRIX لديها استدعاء نظام prctl() (أُدخل أيضًا في Linux 2.1.44 كـ irix_prctl على بنية MIPS)، مع النموذج الأولي

    ptrdiff_t prctl(int op, int arg2, int arg3);

وعمليات للحصول على الحد الأقصى لعدد العمليات لكل مستخدم، والحصول على الحد الأقصى لعدد المعالجات التي يمكن للعملية المستدعية استخدامها، ومعرفة ما إذا كانت عملية محددة محظورة حاليًا، والحصول على أو تعيين الحد الأقصى لحجم المكدس، وهكذا.

المعايير
لينكس.

التاريخ
Linux 2.1.57, glibc 2.0.6

تحذيرات
يستخدم النموذج الأولي لغلاف libc قائمة وسائط متغيرة. يجعل هذا من الضروري تمرير الوسائط بالعرض الصحيح. عند تمرير ثوابت رقمية، مثل 0، استخدم لاحقة: 0L.

الاستخدام غير الحذر لبعض عمليات prctl() يمكن أن يربك بيئة وقت التشغيل في مساحة المستخدم، لذا يجب استخدام هذه العمليات بحذر.

انظر أيضًا
signal(2), PR_CAP_AMBIENT(2const), PR_CAPBSET_READ(2const), PR_CAPBSET_DROP(2const), PR_SET_CHILD_SUBREAPER(2const), PR_GET_CHILD_SUBREAPER(2const), PR_SET_DUMPABLE(2const), PR_GET_DUMPABLE(2const), PR_SET_ENDIAN(2const), PR_GET_ENDIAN(2const), PR_SET_FP_MODE(2const), PR_GET_FP_MODE(2const), PR_SET_FPEMU(2const), PR_GET_FPEMU(2const), PR_SET_FPEXC(2const), PR_GET_FPEXC(2const), PR_SET_IO_FLUSHER(2const), PR_GET_IO_FLUSHER(2const), PR_SET_KEEPCAPS(2const), PR_GET_KEEPCAPS(2const), PR_MCE_KILL(2const), PR_MCE_KILL_GET(2const), PR_SET_MM(2const), PR_SET_VMA(2const), PR_MPX_ENABLE_MANAGEMENT(2const), PR_MPX_DISABLE_MANAGEMENT(2const), PR_SET_NAME(2const), PR_GET_NAME(2const), PR_SET_NO_NEW_PRIVS(2const), PR_GET_NO_NEW_PRIVS(2const), PR_PAC_RESET_KEYS(2const), PR_SET_PDEATHSIG(2const), PR_GET_PDEATHSIG(2const), PR_SET_PTRACER(2const), PR_SET_SECCOMP(2const), PR_GET_SECCOMP(2const), PR_SET_SECUREBITS(2const), PR_GET_SECUREBITS(2const), PR_SET_SPECULATION_CTRL(2const), PR_GET_SPECULATION_CTRL(2const), PR_SVE_SET_VL(2const), PR_SVE_GET_VL(2const), PR_SET_SYSCALL_USER_DISPATCH(2const), PR_SET_TAGGED_ADDR_CTRL(2const), PR_GET_TAGGED_ADDR_CTRL(2const), PR_TASK_PERF_EVENTS_DISABLE(2const), PR_TASK_PERF_EVENTS_ENABLE(2const), PR_SET_THP_DISABLE(2const), PR_GET_THP_DISABLE(2const), PR_GET_TID_ADDRESS(2const), PR_SET_TIMERSLACK(2const), PR_GET_TIMERSLACK(2const), PR_SET_TIMING(2const), PR_GET_TIMING(2const), PR_SET_TSC(2const), PR_GET_TSC(2const), PR_SET_UNALIGN(2const), PR_GET_UNALIGN(2const), PR_GET_AUXV(2const), PR_SET_MDWE(2const), PR_GET_MDWE(2const), PR_RISCV_SET_ICACHE_FLUSH_CTX(2const), PR_FUTEX_HASH(2const), core(5)

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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