.\" -*- coding: UTF-8 -*- .\" Copyright 2016, Intel Corp. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH pkey_alloc 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم pkey_alloc, pkey_free \- تخصيص أو تحرير مفتاح حماية .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#define _GNU_SOURCE\fP /* انظر feature_test_macros(7) */ \fB#include \fP .P \fBint pkey_alloc(unsigned int \fP\fIflags\fP\fB, unsigned int \fP\fIaccess_rights\fP\fB);\fP \fBint pkey_free(int \fP\fIpkey\fP\fB);\fP .fi .SH الوصف \fBpkey_alloc\fP() يخصص مفتاح حماية (pkey) ويسمح بتمريره إلى \fBpkey_mprotect\fP(2). .P \fIflags\fP الخاصة بـ \fBpkey_alloc\fP() محجوزة للاستخدام المستقبلي ويجب دائمًا تحديدها حاليًا كـ 0. .P وسيطة \fIaccess_rights\fP الخاصة بـ \fBpkey_alloc\fP() قد تحتوي على صفر أو أكثر من عمليات التعطيل: .TP \fBPKEY_DISABLE_ACCESS\fP تعطيل كل الوصول إلى البيانات للذاكرة المغطاة بمفتاح الحماية المُعاد. .TP \fBPKEY_DISABLE_WRITE\fP تعطيل وصول الكتابة إلى الذاكرة المغطاة بمفتاح الحماية المُعاد. .P \fBpkey_free\fP() يحرر مفتاح حماية ويجعله متاحًا للتخصيصات اللاحقة. بعد تحرير مفتاح الحماية، لا يجوز استخدامه بعد الآن في أي عمليات متعلقة بمفتاح الحماية. .P لا ينبغي للتطبيق استدعاء \fBpkey_free\fP() على أي مفتاح حماية تم تعيينه لنطاق عنوان بواسطة \fBpkey_mprotect\fP(2) ولا يزال قيد الاستخدام. السلوك في هذه الحالة غير محدد وقد يؤدي إلى خطأ. .SH "قيمة الإرجاع" عند النجاح، \fBpkey_alloc\fP() يُرجع قيمة مفتاح حماية موجبة. عند النجاح، \fBpkey_free\fP() يُرجع صفرًا. عند الخطأ، يُرجع \-1، ويتم تعيين \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEINVAL\fP \fIpkey\fP أو \fIflags\fP أو \fIaccess_rights\fP غير صالح. .TP \fBENOSPC\fP (\fBpkey_alloc\fP()) تم تخصيص جميع مفاتيح الحماية المتاحة للعملية الحالية. عدد المفاتيح المتاحة خاص بالمعمارية وخاص بالتطبيق وقد يقل بسبب استخدام النواة الداخلي لبعض المفاتيح. يوجد حاليًا 15 مفتاحًا متاحًا لبرامج المستخدم على x86. .IP سيتم أيضًا إرجاع هذا الخطأ إذا كان المعالج أو نظام التشغيل لا يدعم مفاتيح الحماية. يجب على التطبيقات دائمًا أن تكون مستعدة للتعامل مع هذا الخطأ، حيث أن العوامل الخارجة عن سيطرة التطبيق يمكن أن تقلل عدد مفاتيح الحماية المتاحة. .SH المعايير لينكس. .SH التاريخ لينكس 4.9، glibc 2.27. .SH ملاحظات استدعاء \fBpkey_alloc\fP() آمن دائمًا بغض النظر عما إذا كان نظام التشغيل يدعم مفاتيح الحماية أم لا. يمكن استخدامه بدلاً من أي آلية أخرى لاكتشاف دعم pkey وسيفشل ببساطة مع الخطأ \fBENOSPC\fP إذا لم يكن لدى نظام التشغيل دعم pkey. .P تضمن النواة أن محتويات سجل الحقوق العتادي (PKRU) سيتم الحفاظ عليها فقط لمفاتيح الحماية المخصصة. في أي وقت يتم فيه إلغاء تخصيص مفتاح (سواء قبل الاستدعاء الأول الذي يُرجع ذلك المفتاح من \fBpkey_alloc\fP() أو بعد تحريره عبر \fBpkey_free\fP())، قد تقوم النواة بإجراء تغييرات عشوائية على أجزاء سجل الحقوق التي تؤثر على الوصول إلى ذلك المفتاح. .SH أمثلة انظر \fBpkeys\fP(7). .SH "انظر أيضًا" \fBpkey_mprotect\fP(2), \fBpkeys\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .