1. NOM▲
clock_getcpuclockid - Obtenir l'identifiant de l'horloge CPU d'un processus
2. SYNOPSIS ▲
#include <time.h>
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 :
$ ./
a.out 1
# Show CPU clock of init process
CPU-
time clock for
PID 1
is 2
.213466748
seconds
10.1. Source du programme ▲
#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 ▲
clock_getres(2), timer_create(2), pthread_getcpuclockid(3), time(7)
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> ».