table of contents
other sections
GETITIMER(2) | Manuel du programmeur Linux | GETITIMER(2) |
NOM¶
getitimer, setitimer - Lire/écrire la valeur d'une temporisationSYNOPSIS¶
#include <sys/time.h>int getitimer(int which, struct itimerval *curr_value);int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);
DESCRIPTION¶
Le système fournit pour chaque processus trois temporisations, chacune avec un fonctionnement particulier. Lorsqu'une temporisation expire, un signal est envoyé au processus et la temporisation redémarre éventuellement.- ITIMER_REAL
- décroît en temps réel et un signal SIGALRM est émis à l'expiration du délai.
- ITIMER_VIRTUAL
- décroît uniquement quand le processus s'exécute, et un signal SIGVTALRM est émis à l'expiration du délai.
- ITIMER_PROF
- décroît à la fois quand le processus s'exécute, et quand le processeur exécute des fonctions systèmes à la demande du processus. Cette temporisation, utilisée conjointement avec ITIMER_VIRTUAL, est généralement utilisée pour obtenir le profil d'exécution du processus entre les fonctionnalités utilisateur et le noyau. SIGPROF est émis à l'expiration du délai.
struct itimerval { struct timeval it_interval; /* valeur suivante */ struct timeval it_value; /* valeur actuelle */ }; struct timeval { time_t tv_sec; /* secondes */ suseconds_t tv_usec; /* microsecondes */ };
La fonction getitimer() renseigne la structure pointée par curr_value avec le paramétrage de la temporisation indiqué par which (parmi ITIMER_REAL, ITIMER_VIRTUAL, ou ITIMER_PROF). L'élément it_value est rempli avec le délai restant dans la temporisation, ou zéro si la temporisation est désactivée. De même, it_interval sera rempli avec la valeur originale de la temporisation.
VALEUR RENVOYÉE¶
S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno en conséquence.ERREURS¶
- EFAULT
- new_value, old_value ou curr_value n'est pas un pointeur valable.
- EINVAL
- which n'est ni ITIMER_REAL, ni ITIMER_VIRTUAL, ni ITIMER_PROF ; ou (depuis Linux 2.6.22) un des champs tv_usec dans la structure pointée par new_value contient une valeur hors de l'intervalle 0 à 999 999.
CONFORMITɶ
POSIX.1-2001, SVr4, BSD 4.4 (cet appel est apparu dans BSD 4.2). POSIX.1-2008 marque getitimer() et setitimer() comme étant obsolètes, en recommandant d'utiliser à la place l'API des temporisations POSIX ( timer_gettime(2), timer_settime(2), etc.).NOTES¶
Un fils créé avec fork(2) n'hérite pas des temporisations périodiques de son père. Les temporisations périodiques sont conservées au travers d'un execve(2).setitimer(which, NULL, &old_value);
getitimer(which, &old_value);
BOGUES¶
Sous Linux, l'émission et la réception d'un signal sont distincts, et un même signal ne peut pas être émis deux fois de suite si le premier n'a pas été reçu. Il est ainsi possible qu'avec une charge système très élevée, une temporisation ITIMER_REAL expire avant que le signal d'une expiration précédente n'ait été reçu. Le second signal sera alors perdu.VOIR AUSSI¶
gettimeofday(2), sigaction(2), signal(2), timer_create(2), timerfd_create(2), time(7)COLOPHON¶
Cette page fait partie de la publication 3.44 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/>.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/>. Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009). Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet manpages-fr. Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».1er octobre 2012 | Linux |