.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2012, Chandan Apsangi .\" Copyright 2013, Michael Kerrisk .\" 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_setname_np 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم pthread_setname_np, pthread_getname_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_setname_np(pthread_t \fP\fIthread\fP\fB, const char *\fP\fIname\fP\fB);\fP \fBint pthread_getname_np(\fPsize_t size; \fB pthread_t \fP\fIthread\fP\fB, char \fP\fIname\fP\fB[\fP\fIsize\fP\fB], size_t \fP\fIsize\fP\fB);\fP .fi .SH الوصف بشكل مبدئي، ترث جميع الخيوط المنشأة باستخدام \fBpthread_create\fP() اسم البرنامج. يمكن استخدام دالة \fBpthread_setname_np\fP() لضبط اسم فريد لخيط، وهو ما قد يكون مفيدًا لتصحيح تطبيقات متعددة الخيوط. اسم الخيط هو سلسلة محارف ذات معنى بلغة C، ويقتصر طولها على 16 حرفًا، بما في ذلك البايت الختامي الصفري (\[aq]\[rs]0\[aq]). تُحدد الوسيطة \fIthread\fP الخيط الذي سيُغيَّر اسمه؛ وتُحدد \fIname\fP الاسم الجديد. .P يمكن استخدام دالة \fBpthread_getname_np\fP() لاسترجاع اسم الخيط. تُحدد الوسيطة \fIthread\fP الخيط الذي سيُسترجَع اسمه. يُستخدم المخزن المؤقت \fIname\fP لإرجاع اسم الخيط؛ وتُحدد \fIsize\fP عدد البايتات المتاحة في \fIname\fP. يجب أن يكون المخزن المؤقت المُحدَّد بواسطة \fIname\fP بطول 16 حرفًا على الأقل. سيكون اسم الخيط المُرجَع في المخزن المؤقت للإخراج منتهيًا بصفر. .SH "قيمة الإرجاع" عند النجاح، تُعيد هذه الدوال القيمة 0؛ وعند الخطأ، تُعيد رقم خطأ غير صفري. .SH الأخطاء قد تفشل دالة \fBpthread_setname_np\fP() مع الخطأ التالي: .TP \fBERANGE\fP يتجاوز طول السلسلة المُشار إليها بواسطة \fIname\fP الحد المسموح به. .P قد تفشل دالة \fBpthread_getname_np\fP() مع الخطأ التالي: .TP \fBERANGE\fP المخزن المؤقت المُحدَّد بواسطة \fIname\fP و \fIsize\fP صغير جدًا لاحتواء اسم الخيط. .P إذا فشلت أي من هاتين الدالتين في فتح \fI/proc/self/task/\fPtid\fI/comm\fP، فقد تفشل الاستدعاء مع أحد الأخطاء الموصوفة في \fBopen\fP(2). .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBpthread_setname_np\fP(), \fBpthread_getname_np\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير جنو؛ ومن هنا جاءت اللاحقة "_np" (غير منقول) في الأسماء. .SH التاريخ glibc 2.12. .SH ملاحظات تكتب \fBpthread_setname_np\fP() داخليًا إلى ملف \fIcomm\fP الخاص بالخيط تحت نظام الملفات \fI/proc\fP: \fI/proc/self/task/\fPtid\fI/comm\fP. تسترجع \fBpthread_getname_np\fP() منه من نفس الموقع. .SH أمثلة يوضح البرنامج أدناه استخدام \fBpthread_setname_np\fP() و \fBpthread_getname_np\fP(). .P تظهر جلسة الصدفة التالية تشغيلًا نموذجيًا للبرنامج: .P .in +4n .EX $\fB ./a.out\fP; Created a thread. Default name is: a.out The thread name after setting it is THREADFOO. \f[B]\[ha]Z\fR # Suspend the program [1]+ Stopped ./a.out $ \fBps H \-C a.out \-o \[aq]pid tid cmd comm\[aq]\fP PID TID CMD COMMAND 5990 5990 ./a.out a.out 5990 5991 ./a.out THREADFOO $ \fBcat /proc/5990/task/5990/comm\fP a.out $ \fBcat /proc/5990/task/5991/comm\fP THREADFOO .EE .in .SS "مصدر البرنامج" .\" SRC BEGIN (pthread_setname_np.c) \& .EX #define _GNU_SOURCE #include #include #include #include #include #include #include \& #define NAMELEN 16 \& static void * threadfunc(void *parm) { sleep(5); // allow main program to set the thread name return NULL; } \& int main(int argc, char *argv[]) { pthread_t thread; int rc; char thread_name[NAMELEN]; \& rc = pthread_create(&thread, NULL, threadfunc, NULL); if (rc != 0) errc(EXIT_FAILURE, rc, "pthread_create"); \& rc = pthread_getname_np(thread, thread_name, NAMELEN); if (rc != 0) errc(EXIT_FAILURE, rc, "pthread_getname_np"); \& printf("Created a thread. Default name is: %s\[rs]n", thread_name); rc = pthread_setname_np(thread, (argc > 1) ? argv[1] : "THREADFOO"); if (rc != 0) errc(EXIT_FAILURE, rc, "pthread_setname_np"); \& sleep(2); \& rc = pthread_getname_np(thread, thread_name, NAMELEN); if (rc != 0) errc(EXIT_FAILURE, rc, "pthread_getname_np"); printf("The thread name after setting it is %s.\[rs]n", thread_name); \& rc = pthread_join(thread, NULL); if (rc != 0) errc(EXIT_FAILURE, rc, "pthread_join"); \& printf("Done\[rs]n"); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" .ad l .nh \fBprctl\fP(2), \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 .