.\" -*- 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_getcpuclockid 3 "20 أغسطس 2025" "صفحات دليل لينكس 6.18" .SH الاسم pthread_getcpuclockid \- استرداد مُعرّف ساعة وقت وحدة المعالجة المركزية لخيط .SH المكتبة مكتبة مسالك POSIX (\fIlibpthread\fP،\ \fI\-lpthread\fP) .SH موجز .nf \fB#include \fP \fB#include \fP .P \fBint pthread_getcpuclockid(pthread_t \fP\fIthread\fP\fB, clockid_t *\fP\fIclockid\fP\fB);\fP .fi .SH الوصف .\" The clockid is constructed as follows: .\" *clockid = CLOCK_THREAD_CPUTIME_ID | (pd->tid << CLOCK_IDFIELD_SIZE) .\" where CLOCK_IDFIELD_SIZE is 3. تحصل الدالة \fBpthread_getcpuclockid\fP() على مُعرّف ساعة وقت وحدة المعالجة المركزية للخيط الذي يُعطى مُعرّفه في \fIthread\fP، وتُعيده في الموقع المُشار إليه بواسطة \fIclockid\fP. .SH "قيمة الإرجاع" عند النجاح، تعيد هذه الدالة 0؛ وعند حدوث خطأ، تعيد رقم خطأ غير صفري. .SH الأخطاء .TP \fBENOENT\fP .\" CLOCK_THREAD_CPUTIME_ID not defined .\" .\" Looking at nptl/pthread_getcpuclockid.c an ERANGE error would .\" be possible if kernel thread IDs took more than 29 bits (which .\" they currently cannot). ساعات وقت وحدة المعالجة المركزية لكل خيط غير مدعومة من النظام. .TP \fBESRCH\fP تعذر العثور على أي خيط بالمعرف \fIthread\fP. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBpthread_getcpuclockid\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير POSIX.1\-2008. .SH التاريخ glibc 2.2. POSIX.1\-2001. .SH ملاحظات عندما يُشير \fIthread\fP إلى الخيط المُستدعي، تُعيد هذه الدالة مُعرّفاً يُشير إلى نفس الساعة التي يُعالجها \fBclock_gettime\fP(2) و \fBclock_settime\fP(2) عند إعطاء مُعرّف الساعة \fBCLOCK_THREAD_CPUTIME_ID\fP. .SH أمثلة يُنشئ البرنامج أدناه خيطاً ثم يستخدم \fBclock_gettime\fP(2) لاسترداد إجمالي وقت وحدة المعالجة المركزية للعملية، ووقت وحدة المعالجة المركزية لكل خيط المُستهلك من قبل الخيطين. تُظهر جلسة الصدفة التالية تشغيلاً مثالياً: .P .in +4n .EX $\fB ./a.out\fP; Main thread sleeping Subthread starting infinite loop Main thread consuming some CPU time... Process total CPU time: 1.368 Main thread CPU time: 0.376 Subthread CPU time: 0.992 .EE .in .SS "مصدر البرنامج" .\" SRC BEGIN (pthread_getcpuclockid.c) \& .EX /* Link with "\-lrt" */ \& #include #include #include #include #include #include #include #include #include #include \& static void * thread_start(void *arg) { printf("Subthread starting infinite loop\[rs]n"); for (;;) continue; } \& static void pclock(char *msg, clockid_t cid) { struct timespec ts; \& printf("%s", msg); if (clock_gettime(cid, &ts) == \-1) err(EXIT_FAILURE, "clock_gettime"); printf("%4jd.%03ld\[rs]n", (intmax_t) ts.tv_sec, ts.tv_nsec / 1000000); } \& int main(void) { pthread_t thread; clockid_t cid; int s; \& s = pthread_create(&thread, NULL, thread_start, NULL); if (s != 0) errc(EXIT_FAILURE, s, "pthread_create"); \& printf("Main thread sleeping\[rs]n"); sleep(1); \& printf("Main thread consuming some CPU time...\[rs]n"); for (unsigned int j = 0; j < 2000000; j++) getppid(); \& pclock("Process total CPU time: ", CLOCK_PROCESS_CPUTIME_ID); \& s = pthread_getcpuclockid(pthread_self(), &cid); if (s != 0) errc(EXIT_FAILURE, s, "pthread_getcpuclockid"); pclock("Main thread CPU time: ", cid); \& /* The preceding 4 lines of code could have been replaced by: pclock("Main thread CPU time: ", CLOCK_THREAD_CPUTIME_ID); */ \& s = pthread_getcpuclockid(thread, &cid); if (s != 0) errc(EXIT_FAILURE, s, "pthread_getcpuclockid"); pclock("Subthread CPU time: 1 ", cid); \& exit(EXIT_SUCCESS); /* Terminates both threads */ } .EE .\" SRC END .SH "انظر أيضًا" \fBclock_gettime\fP(2), \fBclock_settime\fP(2), \fBtimer_create\fP(2), \fBclock_getcpuclockid\fP(3), \fBpthread_self\fP(3), \fBpthreads\fP(7), \fBtime\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 .