.\" -*- 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_setaffinity_np 3 "21 سبتمبر 2025" "صفحات دليل لينكس 6.18" .SH الاسم pthread_setaffinity_np, pthread_getaffinity_np \- ضبط/الحصول على تقارب وحدة المعالجة المركزية لخيط .SH المكتبة مكتبة مسالك POSIX (\fIlibpthread\fP،\ \fI\-lpthread\fP) .SH موجز .nf \fB#define _GNU_SOURCE\fP /* انظر feature_test_macros(7) */ \fB#include \fP .P \fBint pthread_setaffinity_np(pthread_t \fP\fIthread\fP\fB, size_t \fP\fIcpusetsize\fP\fB,\fP \fB const cpu_set_t *\fP\fIcpuset\fP\fB);\fP \fBint pthread_getaffinity_np(pthread_t \fP\fIthread\fP\fB, size_t \fP\fIcpusetsize\fP\fB,\fP \fB cpu_set_t *\fP\fIcpuset\fP\fB);\fP .fi .SH الوصف تضبط الدالة \fBpthread_setaffinity_np\fP() قناع تقارب وحدة المعالجة المركزية للخيط \fIthread\fP إلى مجموعة وحدة المعالجة المركزية المشار إليها بواسطة \fIcpuset\fP. إذا نجحت الاستدعاء، ولم يكن الخيط يعمل حاليًا على إحدى وحدات المعالجة المركزية في \fIcpuset\fP، فسيُهاجر إلى إحدى تلك الوحدات. .P تُرجع الدالة \fBpthread_getaffinity_np\fP() قناع تقارب وحدة المعالجة المركزية للخيط \fIthread\fP في المخزن المؤقت المشار إليه بواسطة \fIcpuset\fP. .P لمزيد من التفاصيل حول أقنعة تقارب المعالج (CPU affinity masks)، راجع \fBsched_setaffinity\fP(2). لوصف لمجموعة من الماكرو التي يمكن استخدامها لمعالجة وفحص مجموعات المعالجات، راجع \fBCPU_SET\fP(3). .P الوسيطة \fIcpusetsize\fP هي طول (بالبايت) المخزن المؤقت المشار إليه بواسطة \fIcpuset\fP. عادةً، تُحدد هذه الوسيطة كـ \fIsizeof(cpu_set_t)\fP. (قد تكون قيمة أخرى، إذا استُخدمت وحدات الماكرو الموصوفة في \fBCPU_SET\fP(3) للتخصيص الديناميكي لمجموعة وحدة المعالجة المركزية.) .SH "قيمة الإرجاع" عند النجاح، تُعيد هذه الدوال القيمة 0؛ وعند الخطأ، تُعيد رقم خطأ غير صفري. .SH الأخطاء .TP \fBEFAULT\fP عنوان الذاكرة المقدم غير صالح. .TP \fBEINVAL\fP (\fBpthread_setaffinity_np\fP()) لا يحتوي قناع البتات للتقارب \fImask\fP على أي معالجات موجودة فعليًا حاليًا على النظام ومسموح بها للخيط وفقًا لأي قيود قد تُفرض بواسطة آلية "cpuset" الموصوفة في \fBcpuset\fP(7). .TP \fBEINVAL\fP .\" cpumask_t .\" The raw sched_getaffinity() system call returns the size (in bytes) .\" of the cpumask_t type. (\fBpthread_setaffinity_np\fP()) حدد \fIcpuset\fP وحدة معالجة مركزية خارج المجموعة المدعومة من النواة. (يُعرف خيار تهيئة النواة \fBCONFIG_NR_CPUS\fP نطاق المجموعة المدعومة من نوع بيانات النواة المستخدم لتمثيل مجموعات وحدة المعالجة المركزية.) .TP \fBEINVAL\fP (\fBpthread_getaffinity_np\fP()) \fIcpusetsize\fP أصغر من حجم قناع التقارب المستخدم من النواة. .TP \fBESRCH\fP تعذر العثور على أي خيط بالمعرف \fIthread\fP. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBpthread_setaffinity_np\fP(), \fBpthread_getaffinity_np\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير جنو؛ ومن هنا جاءت اللاحقة "_np" (غير منقول) في الأسماء. .SH التاريخ glibc 2.3.4. .P في إصدار glibc 2.3.3 فقط، توفرت نسخ من هذه الدوال لم تكن تحتوي على معطى \fIcpusetsize\fP. بدلاً من ذلك، كان حجم مجموعة وحدة المعالجة المركزية المعطى لنداءات النظام الأساسية هو دائماً \fIsizeof(cpu_set_t)\fP. .SH ملاحظات بعد استدعاء \fBpthread_setaffinity_np\fP()، تكون مجموعة وحدات المعالجة المركزية التي سيعمل عليها الخيط فعليًا هي تقاطع المجموعة المحددة في الوسيطة \fIcpuset\fP ومجموعة وحدات المعالجة المركزية الموجودة فعليًا على النظام. قد يُقيد النظام أيضًا مجموعة وحدات المعالجة المركزية التي يعمل عليها الخيط إذا استُخدمت آلية "cpuset" الموصوفة في \fBcpuset\fP(7). تُفرض هذه القيود على المجموعة الفعلية لوحدات المعالجة المركزية التي سيعمل عليها الخيط بصمت من النواة. .P تُنفذ هذه الدوال فوق استدعاءات النظام \fBsched_setaffinity\fP(2) و \fBsched_getaffinity\fP(2). .P يرث خيط جديد مُنشأ بواسطة \fBpthread_create\fP(3) نسخة من قناع تقارب وحدة المعالجة المركزية لمنشئه. .SH أمثلة في البرنامج التالي، يستخدم الخيط الرئيسي \fBpthread_setaffinity_np\fP() لضبط قناع تقارب وحدة المعالجة المركزية ليشمل وحدات المعالجة المركزية 0 إلى 7 (قد لا تكون جميعها متاحة على النظام)، ثم يستدعي \fBpthread_getaffinity_np\fP() للتحقق من قناع تقارب وحدة المعالجة المركزية الناتج للخيط. .P .\" SRC BEGIN (pthread_setaffinity_np.c) .EX #define _GNU_SOURCE #include #include #include #include #include \& int main(void) { int s; cpu_set_t cpuset; pthread_t thread; \& thread = pthread_self(); \& /* Set affinity mask to include CPUs 0 to 7. */ \& CPU_ZERO(&cpuset); for (size_t j = 0; j < 8; j++) CPU_SET(j, &cpuset); \& s = pthread_setaffinity_np(thread, sizeof(cpuset), &cpuset); if (s != 0) errc(EXIT_FAILURE, s, "pthread_setaffinity_np"); \& /* Check the actual affinity mask assigned to the thread. */ \& s = pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset); if (s != 0) errc(EXIT_FAILURE, s, "pthread_getaffinity_np"); \& printf("Set returned by pthread_getaffinity_np() contained:\[rs]n"); for (size_t j = 0; j < CPU_SETSIZE; j++) if (CPU_ISSET(j, &cpuset)) printf(" CPU %zu\[rs]n", j); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBsched_setaffinity\fP(2), \fBCPU_SET\fP(3), \fBpthread_attr_setaffinity_np\fP(3), \fBpthread_self\fP(3), \fBsched_getcpu\fP(3), \fBcpuset\fP(7), \fBpthreads\fP(7), \fBsched\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 .