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);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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