1. NOM

clock_getcpuclockid - Obtenir l'identifiant de l'horloge CPU d'un processus

2. SYNOPSIS

#include <time.h>

 
Sélectionnez
int clock_getcpuclockid(pid_t pid, clockid_t *clock_id);



Lier avec -lrt (seulement pour les versions de glibc antérieures à 2.17).

Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :

clock_getcpuclockid() :
    _XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L

3. DESCRIPTION

La fonction clock_getcpuclockid() obtient l'identifiant de l'horloge CPU du processus dont l'identifiant est pid et le renvoie dans l'emplacement pointé par clock_id. Si pid est nul, alors l'identifiant de l'horloge CPU du processus appelant est renvoyé.

4. VALEUR RENVOYÉE

En cas de réussite, clock_getcpuclockid() renvoie 0. En cas d'erreur, elle renvoie un numéro d'erreur positif listé dans ERRORS.

5. ERREURS

  • ENOSYS
        Le noyau ne permet pas d'obtenir l'horloge CPU d'un autre processus et pid ne correspond pas au processus appelant.
  • EPERM
        L'appelant n'a pas les permissions pour accéder à l'horloge CPU du processus indiqué par pid. (Spécifiée comme une erreur optionnelle dans POSIX.1-2001 ; elle ne se produit pas sous Linux à moins que le noyau ne permette pas d'obtenir l'horloge CPU d'un autre processus)
  • ESRCH
        Il n'y a pas de processus ayant pour identifiant pid

6. VERSIONS

La fonction clock_getcpuclockid() est disponible dans la glibc depuis la version 2.2.

7. ATTRIBUTS

7.1. Multithreading (voir pthreads(7))

La fonction clock_getcpuclockid() est sûre dans un contexte multithread.

8. CONFORMITÉ

POSIX.1-2001.

9. NOTES

Un appel à clock_gettime(2) avec l'identifiant d'horloge obtenu par un appel à clock_getcpuclockid() avec un pid de 0 revient à utiliser l'identifiant d'horloge CLOCK_PROCESS_CPUTIME_ID.

10. EXEMPLE

Le programme d'exemple ci-dessous obtient l'identifiant de l'horloge CPU du processus dont l'identifiant est fourni sur la ligne de commande, puis utilise clock_gettime(2) pour obtenir l'heure de cette horloge. Un exemple d'exécution suit :

 
Sélectionnez
$ ./a.out 1                 # Show CPU clock of init process
CPU-time clock for PID 1 is 2.213466748 seconds

10.1. Source du programme

 
Sélectionnez
#define _XOPEN_SOURCE 600
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.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 %ld.%09ld seconds\n",
	    argv[1], (long) ts.tv_sec, (long) ts.tv_nsec);
    exit(EXIT_SUCCESS);
}

11. VOIR AUSSI

12. COLOPHON

Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

13. TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Alain Portal <http://manpagesfr.free.fr/> (2008).

Veuillez signaler toute erreur de traduction en écrivant à <>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».