clock_getcpuclockid(3)

NUME
clock_getcpuclockid - obține ID-ul ceasului de timp CPU al unui proces

BIBLIOTECA
Biblioteca C standard (libc, -lc), începând de la glibc 2.17

Înainte de glibc 2.17, biblioteca în timp real (librt, -lrt)

REZUMAT
#include <time.h>

int clock_getcpuclockid(pid_t pid, clockid_t *clockid);

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

clock_getcpuclockid():
    _POSIX_C_SOURCE >= 200112L

DESCRIERE
Funcția clock_getcpuclockid() obține ID-ul ceasului de timp CPU al procesului al cărui ID este pid și îl returnează în locația indicată de clockid. Dacă pid este zero, atunci se returnează ID-ul ceasului de timp CPU al procesului care face apelul.

VALOAREA RETURNATĂ
În caz de succes, clock_getcpuclockid() returnează 0; în caz de eroare, returnează unul dintre numerele de eroare pozitive enumerate în ERORI.

ERORI

ENOSYS
    Nucleul nu permite obținerea ceasului de timp CPU per proces al unui alt proces, iar pid nu specifică procesul apelant.

EPERM
    Apelantul nu are permisiunea de a accesa ceasul de timp CPU al procesului specificat de pid; (specificată în POSIX.1-2001; nu apare în Linux, cu excepția cazului în care nucleul nu permite obținerea ceasului de timp CPU per proces al unui alt proces).

ESRCH
    Nu există niciun proces cu ID-ul pid.

VERSIUNI
Funcția clock_getcpuclockid() este disponibilă începând cu glibc 2.2.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
clock_getcpuclockid() | Siguranța firelor | MT-Safe

STANDARDE
POSIX.1-2001, POSIX.1-2008.

NOTE
Apelarea clock_gettime(2) cu ID-ul ceasului obținut printr-un apel la clock_getcpuclockid() cu un pid de 0, este același lucru cu utilizarea ID-ului ceasului CLOCK_PROCESS_CPUTIME_ID.

EXEMPLE
Programul de exemplu de mai jos obține ID-ul ceasului de timp CPU al procesului al cărui ID este dat în linia de comandă și apoi utilizează clock_gettime(2) pentru a obține ora de pe acel ceas. Un exemplu de execuție este următorul:

    $ ./a.out 1                 # Afișează ceasul CPU al procesului init
    CPU-time clock for PID 1 is 2.213466748 seconds

  Sursa programului
    #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("Ceasul de timp CPU pentru PID %s este de %jd.%09ld secunde\n",
               argv[1], (intmax_t) ts.tv_sec, ts.tv_nsec);
        exit(EXIT_SUCCESS);
    }

CONSULTAȚI ȘI
clock_getres(2), timer_create(2), pthread_getcpuclockid(3), time(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.