|
|||||||
|
|
NANOSLEEPSection: Manuel du programmeur Linux (2)Updated: 18 juillet 2003 Index Return to Main Contents NOMnanosleep - Arrêter l'exécution pendant une durée donnée.SYNOPSIS#include <time.h>int nanosleep(const struct timespec *req, struct timespec *rem); DESCRIPTIONnanosleep suspend l'exécution du programme en cours pour une durée valant au moins *req. Cette fonction peut se terminer plus tôt que prévu si un signal a été reçu par le processus. Dans ce cas, elle renvoie -1, positionne errno à la valeur EINTR, et inscrit le temps restant dans la structure pointée par rem a moins que rem soit NULL. La valeur de *rem peut être utilisée pour rappeler à nouveau nanosleep afin de terminer la pause.La structure timespec est utilisée pour indiquer l'intervalle de temps en nano-secondes. Elle est définie dans <time.h> et a la forme suivante
La valeur du champ nano-seconde doit être dans l'intervalle 0 à 999 999 999. Par rapport à sleep(3) et usleep(3), nanosleep a l'avantage de n'affecter aucun signal, d'être au standard POSIX, de fournir une meilleure résolution, et de permettre de continuer facilement un sommeil interrompu par un signal. ERREURSEn cas d'erreur ou d'interruption, l'appel système nanosleep renvoie -1 et place dans errno une des valeurs suivantes :
BOGUESL'implémentation actuelle de nanosleep est construite sur le mécanisme de temporisation du noyau, qui dispose d'une résolution valant 1/HZ s (10 ms sur Linux/i386 et 1 ms sur Linux/Alpha). Ainsi, nanosleep dormira toujours pour une durée au moins égale au temps spécifié, mais il peut prendre jusqu'à 10 ms de plus (i386) avant de faire redémarrer le processus. Pour la même raison, la valeur retournée dans *rem en cas d'interruption par un signal est arrondie au multiple supérieur de 1/HZ s.Certaines applications nécessitant des pauses plus précises (par exemple pour le contrôle de périphériques matériels avec un délai critique), nanosleep peut aussi offrir des pauses avec une précision plus élevée. Si le processus est mis sous le contrôle d'un ordonnanceur temps réel comme SCHED_FIFO ou SCHED_RR, les pauses jusqu'à 2 ms seront effectuées avec des boucles actives d'une précision de l'ordre de la micro-seconde. CONFORMITÉPOSIX.1b (anciennement POSIX.4).VOIR AUSSIsleep(3), usleep(3), sched_setscheduler(2), timer_create(2)TRADUCTIONChristophe Blaess, 2003
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2009 Linuxinfor.com. No rights reserved. |