pthread_attr_setstacksize(3)

الاسم
pthread_attr_setstacksize, pthread_attr_getstacksize - تعيين/الحصول على سمة حجم المكدس في كائن سمات الخيط

المكتبة
مكتبة مسالك POSIX (libpthread، -lpthread)

موجز
#include <pthread.h>

int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
int pthread_attr_getstacksize(const pthread_attr_t *restrict attr,
                              size_t *restrict stacksize);

الوصف
تضبط الدالة pthread_attr_setstacksize() سمة حجم المكدس لكائن سمات الخيط المشار إليه بـ attr إلى القيمة المحددة في stacksize.

تحدد سمة حجم المكدس الحد الأدنى للحجم (بالبايت) الذي سيُخصص للخيوط المنشأة باستخدام كائن سمات الخيط attr.

تُرجع الدالة pthread_attr_getstacksize() سمة حجم المكدس لكائن سمات الخيط المشار إليه بـ attr في المخزن المؤقت المشار إليه بـ stacksize.

قيمة الإرجاع
عند النجاح، تُعيد هذه الدوال القيمة 0؛ وعند الخطأ، تُعيد رقم خطأ غير صفري.

الأخطاء
قد تفشل pthread_attr_setstacksize() مع الخطأ التالي:

EINVAL
    حجم المكدس أقل من PTHREAD_STACK_MIN (16384) بايت.

على بعض الأنظمة، قد تفشل pthread_attr_setstacksize() مع الخطأ EINVAL إذا لم يكن stacksize مضاعفًا لحجم صفحة النظام.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
pthread_attr_setstacksize(), pthread_attr_getstacksize() | سلامة الخيوط | MT-Safe

الإصدارات
وُفّرت هذه الدوال منذ glibc 2.1.

المعايير
POSIX.1-2001, POSIX.1-2008.

ملاحظات
للتفاصيل حول حجم المكدس المبدئي للخيوط الجديدة، انظر pthread_create(3).

حجم مكدس الخيط ثابت عند إنشاء الخيط. فقط الخيط الرئيس يمكنه توسيع مكدسه ديناميكيًا.

تسمح الدالة pthread_attr_setstack(3) للتطبيق بتعيين كل من الحجم والموقع لمكدس مخصص من قبل المستدعي ليُستخدم بواسطة خيط.

العلل
اعتبارًا من glibc 2.8، إذا لم يكن stacksize المحدد مضاعفًا لـ STACK_ALIGN (16 بايت على معظم البنى)، فقد يُقرّب لأسفل، مخالفًا بذلك POSIX.1 الذي ينص على أن المكدس المخصص سيكون على الأقل stacksize بايت.

أمثلة
انظر pthread_create(3).

انظر أيضًا
getrlimit(2), pthread_attr_init(3), pthread_attr_setguardsize(3), pthread_attr_setstack(3), pthread_create(3), pthreads(7)

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

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

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