| clock_getcpuclockid(3) | Library Functions Manual | clock_getcpuclockid(3) |
الاسم¶
clock_getcpuclockid - الحصول على معرف ساعة وقت وحدة المعالجة المركزية لعملية
المكتبة¶
مكتبة C القياسية (libc, -lc)، منذ glibc 2.17
قبل glibc 2.17، مكتبة الوقت الحقيقي (librt، -lrt)
موجز¶
#include <time.h>
int clock_getcpuclockid(pid_t pid, clockid_t *clockid);
clock_getcpuclockid():
_POSIX_C_SOURCE >= 200112L
الوصف¶
الدالة clock_getcpuclockid() تحصل على معرف ساعة وقت وحدة المعالجة المركزية للعملية التي معرفها pid، وتعيده في الموقع المشار إليه بواسطة clockid. إذا كان pid صفرًا، يُعاد معرف ساعة وقت وحدة المعالجة المركزية للعملية المستدعية.
قيمة الإرجاع¶
عند النجاح، تُعيد clock_getcpuclockid() 0؛ عند الخطأ، تُعيد أحد أرقام الأخطاء الموجبة المدرجة في الأخطاء.
الأخطاء¶
- ENOSYS
- لا يدعم النواة الحصول على ساعة وقت وحدة المعالجة المركزية لكل عملية لعملية أخرى، ولا يحدد pid العملية المستدعية.
- EPERM
- لا يملك المستدعي صلاحية الوصول إلى ساعة وقت وحدة المعالجة المركزية للعملية المحددة بواسطة pid. (محدد في POSIX.1-2001؛ لا يحدث على لينكس ما لم يدعم النواة الحصول على ساعة وقت وحدة المعالجة المركزية لكل عملية لعملية أخرى.)
- ESRCH
- لا توجد عملية بالمعرف pid.
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| clock_getcpuclockid() | سلامة الخيوط | MT-Safe |
المعايير¶
POSIX.1-2008.
التاريخ¶
glibc 2.2. POSIX.1-2001.
ملاحظات¶
استدعاء clock_gettime(2) مع معرف الساعة الذي حُصل عليه باستدعاء clock_getcpuclockid() مع pid بقيمة 0، هو نفسه استخدام معرف الساعة CLOCK_PROCESS_CPUTIME_ID.
أمثلة¶
البرنامج المثالي أدناه يحصل على معرف ساعة وقت وحدة المعالجة المركزية للعملية التي معرفها معطى في سطر الأوامر، ثم يستخدم clock_gettime(2) للحصول على الوقت على تلك الساعة. مثال تشغيل هو التالي:
$ ./a.out 1 # Show CPU clock of init process CPU-time clock for PID 1 is 2.213466748 seconds
مصدر البرنامج¶
#define _XOPEN_SOURCE 600
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int
main(int argc, char *argv[])
{
clockid_t clockid;
struct timespec ts;
if (argc != 2) {
fprintf(stderr, "%s <process-ID>\n", argv[0]);
exit(EXIT_FAILURE);
}
if (clock_getcpuclockid(atoi(argv[1]), &clockid) != 0) {
perror("clock_getcpuclockid");
exit(EXIT_FAILURE);
}
if (clock_gettime(clockid, &ts) == -1) {
perror("clock_gettime");
exit(EXIT_FAILURE);
}
printf("CPU-time clock for PID %s is %jd.%09ld seconds\n",
argv[1], (intmax_t) ts.tv_sec, ts.tv_nsec);
exit(EXIT_SUCCESS);
}
انظر أيضًا¶
clock_getres(2), timer_create(2), pthread_getcpuclockid(3), time(7)
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 17 مايو 2025 | صفحات دليل لينكس (لم تصدر بعد) |