TIMES(2)

NOM
times - Obtenir les statistiques temporelles du processus

SYNOPSIS
#include <sys/times.h>

clock_t times(struct tms *buf);

DESCRIPTION
times() stocke les durées statistiques du processus en cours dans la structure struct tms pointée par buf. La structure struct tms est définie ainsi dans </usr/include/sys/times.h> :

struct  tms  {
    clock_t tms_utime;  /* durée utilisateur          */
    clock_t tms_stime;  /* durée système              */
    clock_t tms_cutime; /* durée utilisateur des fils */
    clock_t tms_cstime; /* durée système des fils     */
};

Le champ tms_utime contient le temps CPU écoulé en exécutant les instructions du processus appelant. Le champ tms_stime contient le temps CPU passé dans les fonctions système exécutées pour le compte du processus appelant. Le champ tms_cutime contient la somme des valeurs de tms_utime et tms_cutime pour tous les processus fils terminés ayant été attendus. Le champ tms_cstime contient la somme des valeurs de tms_stime et tms_cstime pour tous les processus fils terminés ayant été attendus.

Les durées des processus fils terminés (et de leurs descendants) sont ajoutées au moment où wait(2) ou waitpid(2) renvoient leur numéro de PID. En particulier, les durées des petits-fils que le fils n'a pas attendu ne sont jamais vues.

Toutes les durées sont exprimées en ticks d'horloge.

VALEUR RENVOYÉE
times() renvoie le nombre de tops d'horloge écoulés depuis un instant arbitraire dans le passé. Sous Linux 2.4 et précédents, il s'agit du démarrage du système. Depuis Linux 2.6, cet instant est (2^32/HZ) - 300 (c'est-à-dire, à peu près 429 millions) secondes avant le démarrage du système. Cette valeur peut déborder de l'intervalle contenu dans un clock_t. En cas d'erreur, (clock_t) -1 est renvoyé et errno contient le code d'erreur.

CONFORMITÉ
SVr4, BSD 4.3, POSIX.1-2001.

NOTES
Le nombre de ticks d'horloge par seconde peut être obtenu en consultant :
    sysconf(_SC_CLK_TCK);
Dans POSIX-1996, le symbole CLK_TCK (défini dans <time.h>) est indiqué en voie d'obsolescence. Il est désormais obsolète.

Dans les noyaux Linux précédant la version 2.6.9, si le traitement de SIGCHLD est configuré avec SIG_IGN, alors les durées des enfants terminés sont automatiquement incluses dans les champs tms_cstime et tms_cutime, bien que POSIX.1-2001 précise que ceci ne doit se produire que si le processus appelant a fait un wait(2) pour ses enfants. Cette non conformité est corrigé dans Linux 2.6.9 et suivants Sous Linux, l'argument buf peut être spécifié comme NULL, avec le résulat que times() renverra simplement un résulat de fonction. Toutefois, POSIX ne décrit pas ce comportement, et la plupart des autres implémentations Unix nécessite une valeur non nulle pour buf.

Notez que clock(3) renvoie des valeurs de type clock_t qui ne sont pas mesurées en ticks d'horloges mais en CLOCKS_PER_SEC.

Sur les anciens systèmes, le nombre de ticks d'horloge par seconde est donné par la variable HZ.

  Historique
SVr1-3 renvoie un long et les membres de la structure sont de type time_t bien qu'ils stockent des ticks et pas des secondes depuis le 1er janvier 1970. V7 utilisait des long pour les membres des structures, car il n'avait pas encore de type time_t.

VOIR AUSSI
time(1), getrusage(2), wait(2), clock(3), sysconf(3), time(7)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 22 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 times ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.