.\" -*- coding: UTF-8 -*- '\" t .\" 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 pthread_attr_setstack 3 "28 يونيو 2025" "صفحات دليل لينكس 6.18" .SH الاسم pthread_attr_setstack, pthread_attr_getstack \- ضبط/الحصول على سمات المكدس في كائن سمات الخيط .SH المكتبة مكتبة مسالك POSIX (\fIlibpthread\fP،\ \fI\-lpthread\fP) .SH موجز .nf \fB#include \fP .P \fBint pthread_attr_setstack(\fPsize_t stacksize; \fB pthread_attr_t *\fP\fIattr\fP\fB,\fP \fB void \fP\fIstackaddr\fP\fB[\fP\fIstacksize\fP\fB],\fP \fB size_t \fP\fIstacksize\fP\fB);\fP \fBint pthread_attr_getstack(const pthread_attr_t *restrict \fP\fIattr\fP\fB,\fP \fB void **restrict \fP\fIstackaddr\fP\fB,\fP \fB size_t *restrict \fP\fIstacksize\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBpthread_attr_getstack\fP()، \fBpthread_attr_setstack\fP(): .nf _POSIX_C_SOURCE >= 200112L .fi .SH الوصف تضبط الدالة \fBpthread_attr_setstack\fP() سمة عنوان المكدس وسمة حجم المكدس لكائن سمات الخيط المشار إليه بواسطة \fIattr\fP إلى القيم المحددة في \fIstackaddr\fP و \fIstacksize\fP، على التوالي. تحدد هذه السمات موقع وحجم المكدس الذي ينبغي استخدامه بواسطة خيط يُنشأ باستخدام كائن سمات الخيط \fIattr\fP. .P ينبغي أن يشير \fIstackaddr\fP إلى أدنى بايت قابل للعنونة من مخزن مؤقت بحجم \fIstacksize\fP بايت تم تخصيصه بواسطة المستدعي. ينبغي أن تكون صفحات المخزن المؤقت المخصص قابلة للقراءة والكتابة معًا. .P تُرجع الدالة \fBpthread_attr_getstack\fP() سمات عنوان المكدس وحجم المكدس لكائن سمات الخيط المشار إليه بواسطة \fIattr\fP في المخازن المؤقتة المشار إليها بواسطة \fIstackaddr\fP و \fIstacksize\fP، على التوالي. .SH "قيمة الإرجاع" عند النجاح، تُعيد هذه الدوال القيمة 0؛ وعند الخطأ، تُعيد رقم خطأ غير صفري. .SH الأخطاء يمكن أن تفشل \fBpthread_attr_setstack\fP() مع الخطأ التالي: .TP \fBEINVAL\fP \fIstacksize\fP أقل من \fBPTHREAD_STACK_MIN\fP (16384) بايت. على بعض الأنظمة، قد يحدث هذا الخطأ أيضًا إذا لم يكن \fIstackaddr\fP أو \fIstackaddr\ +\ stacksize\fP محاذيًا بشكل مناسب. .P يُوثق POSIX.1 أيضًا خطأ \fBEACCES\fP إذا كانت منطقة المكدس الموصوفة بواسطة \fIstackaddr\fP و \fIstacksize\fP غير قابلة للقراءة والكتابة معًا بواسطة المستدعي. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBpthread_attr_setstack\fP()، \fBpthread_attr_getstack\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير POSIX.1\-2008. .SH التاريخ glibc 2.2. POSIX.1\-2001. .SH ملاحظات تُوفر هذه الدوال للتطبيقات التي يجب أن تضمن وضع مكدس الخيط في موقع معين. بالنسبة لمعظم التطبيقات، هذا ليس ضروريًا، وينبغي تجنب استخدام هذه الدوال. (استخدم \fBpthread_attr_setstacksize\fP(3) إذا كان التطبيق يحتاج ببساطة إلى حجم مكدس غير المبدئي.) .P عندما يستخدم تطبيق \fBpthread_attr_setstack\fP()، فإنه يتولى مسؤولية تخصيص المكدس. يُتجاهل أي قيمة لحجم الحارس تم ضبطها باستخدام \fBpthread_attr_setguardsize\fP(3). إذا اعتُبر ذلك ضروريًا، تقع على عاتق التطبيق مسؤولية تخصيص منطقة حارس (صفحة واحدة أو أكثر محمية ضد القراءة والكتابة) للتعامل مع احتمال تجاوز سعة المكدس. .P ينبغي أن يكون العنوان المحدد في \fIstackaddr\fP محاذيًا بشكل مناسب: من أجل قابلية النقل الكاملة، قم بمحاذاته على حد صفحة (\fIsysconf(_SC_PAGESIZE)\fP). قد تكون \fBposix_memalign\fP(3) مفيدة للتخصيص. على الأرجح، ينبغي أيضًا أن يكون \fIstacksize\fP مضاعفًا لحجم صفحة النظام. .P إذا استُخدم \fIattr\fP لإنشاء خيوط متعددة، فيجب على المستدعي تغيير سمة عنوان المكدس بين استدعاءات \fBpthread_create\fP(3)؛ وإلا، ستحاول الخيوط استخدام نفس منطقة الذاكرة لمكدساتها، وسينشأ فوضى. .SH أمثلة انظر \fBpthread_attr_init\fP(3). .SH "انظر أيضًا" .ad l .nh \fBmmap\fP(2)، \fBmprotect\fP(2)، \fBposix_memalign\fP(3)، \fBpthread_attr_init\fP(3)، \fBpthread_attr_setguardsize\fP(3)، \fBpthread_attr_setstackaddr\fP(3)، \fBpthread_attr_setstacksize\fP(3)، \fBpthread_create\fP(3)، \fBpthreads\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 .