times(2) System Calls Manual times(2) NOM times - Obtenir les statistiques temporelles du processus BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include clock_t times(struct tms *buf); DESCRIPTION La fonction times() stocke les durees statistiques du processus en cours dans la structure struct tms pointee par buf. La structure struct tms est definie ainsi dans : struct tms { clock_t tms_utime; /* duree utilisateur */ clock_t tms_stime; /* duree systeme */ clock_t tms_cutime; /* duree utilisateur des enfants */ clock_t tms_cstime; /* duree systeme des enfants */ Le champ tms_utime contient le temps CPU ecoule en executant les instructions du processus appelant. Le champ tms_stime contient le temps CPU passe dans les fonctions systeme executees 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 enfant termines ayant ete attendus. Le champ tms_cstime contient la somme des valeurs de tms_stime et tms_cstime pour tous les processus enfant termines ayant ete attendus. Les durees des processus enfant termines (et de leurs descendants) sont ajoutees au moment ou wait(2) ou waitpid(2) renvoient leur numero de PID. En particulier, les durees des petits-enfants que l'enfant n'a pas attendu ne sont jamais vues. Toutes les durees sont exprimees en tops d'horloge. VALEUR RENVOYEE times() renvoie le nombre de tops d'horloge ecoules depuis un instant arbitraire dans le passe. Cette valeur peut deborder de l'intervalle contenu dans un clock_t. En cas d'erreur (clock_t) -1 est renvoye et errno est defini pour preciser l'erreur. ERREURS EFAULT tms pointe en dehors de l'espace d'adressage du processus. VERSIONS Sous Linux, l'argument buf peut etre NULL, auquel cas times() renvoie simplement son resultat. Cependant, ce comportement n'est pas specifie par POSIX, et la plupart des implementations requierent une valeur non NULL de buf. STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001, SVr4, 4.3BSD. Dans POSIX.1-1996, le symbole CLK_TCK (defini dans ) est indique en voie d'obsolescence. Il est desormais obsolete. Avant Linux anterieurs a 2.6.9, si le traitement de SIGCHLD est configure avec SIG_IGN, alors les durees des enfants termines sont automatiquement incluses dans les champs tms_cstime et tms_cutime, bien que POSIX.1-2001 precise que ceci ne doit se produire que si le processus appelant a fait un wait(2) pour ses enfants. Cette non conformite est corrigee depuis Linux 2.6.9. Sous Linux, << l'instant arbitraire dans le passe >> a partir duquel la valeur renvoyee par times() est mesure a varie suivant les versions du noyau. Sous Linux 2.4 et precedents, il s'agit du demarrage du systeme. Depuis Linux 2.6, cet instant est (2^32/HZ) - 300 secondes avant le demarrage du systeme. Cette variabilite a travers les versions du noyau (et a travers les implementations UNIX) combinee avec le fait que la valeur renvoyee peut deborder de la plage de clock_t, signifie que les applications portables seraient avisees de ne pas utiliser cette valeur. Pour mesurer les modifications d'un temps ecoule, utilisez plutot clock_gettime(2). SVr1-3 renvoie un long et les membres de la structure sont de type time_t bien qu'ils stockent des tops d'horloge et pas des secondes depuis l'epoque. V7 utilisait des long pour les membres des structures, car il n'avait pas encore de type time_t. NOTES Le nombre de tops d'horloge par seconde peut etre obtenu en utilisant : sysconf(_SC_CLK_TCK); Notez que clock(3) renvoie aussi des valeurs de type clock_t, mais cette valeur est mesuree en unites de CLOCKS_PER_SEC, pas en tops d'horloge utilises par times(). BOGUES Une limitation des conventions d'appel systeme Linux sur certaines architectures (notamment i386) fait que sous linux 2.6, il y a une petite fenetre de temps (41 secondes) apres le demarrage ou times() peut retourner -1, indiquant a tort qu'une erreur est apparue. Le meme probleme peut survenir lorsque les enveloppes de valeurs renvoyees ont passe la valeur maximum qui puisse etre stockee dans clock_t. VOIR AUSSI time(1), getrusage(2), wait(2), clock(3), sysconf(3), time(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 times(2)