.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2008, Linux Foundation, written by Michael Kerrisk .\" .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH clock_nanosleep 2 "12 février 2023" "Pages du manuel de Linux 6.03" .SH NOM clock_nanosleep \- Sommeil haute résolution avec horloge spécifique .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP), depuis la glibc 2.17 .PP Avant la glibc 2.17, bibliothèque de temps réel (\fIlibrt\fP, \fI\-lrt\fP) .SH SYNOPSIS \fB#include \fP .nf .PP \fBint clock_nanosleep(clockid_t \fP\fIclockid\fP\fB, int \fP\fIflags\fP\fB,\fP \fB const struct timespec *\fP\fIrequest\fP\fB,\fP \fB struct timespec *_Nullable \fP\fIremain\fP\fB);\fP .fi .PP .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7))\ : .RE .PP \fBclock_nanosleep\fP()\ : .nf _POSIX_C_SOURCE >= 200112L .fi .SH DESCRIPTION Comme \fBnanosleep\fP(2), \fBclock_nanosleep\fP() permet au thread appelant de sommeiller pendant une durée indiquée avec une précision de l’ordre de la nanoseconde. Il diffère de \fBnanosleep\fP(2) dans le fait qu'il permet à l'appelant de choisir l'horloge avec laquelle la durée du sommeil sera mesurée et d'indiquer une valeur absolue ou relative pour la durée du sommeil. .PP Les valeurs de temps passées et renvoyées par cet appel sont spécifiées dans des structures \fBtimespec\fP(3). .PP .\" Look in time/posix-timers.c (kernel 5.6 sources) for the .\" 'struct k_clock' structures that have an 'nsleep' method L'argument \fIclockid\fP précise l'horloge avec laquelle sera mesurée la durée du sommeil. Cet argument doit être l'une des valeurs suivantes\ : .TP \fBCLOCK_REALTIME\fP Une horloge temps réel configurable à l'échelle du système. .TP \fBCLOCK_TAI\fP (depuis Linux 3.10) Horloge dérivée d'une pendule mais qui ignore le franchissement de seconde. .TP \fBCLOCK_MONOTONIC\fP .\" On Linux this clock measures time since boot. Une horloge monotonique, non configurable, mesurant le temps depuis un instant du passé non spécifié qui ne change pas après le démarrage du système. .TP \fBCLOCK_BOOTTIME\fP (depuis Linux 2.6.39) Identique à \fBCLOCK_MONOTONIC\fP, mais elle englobe toute la durée durant laquelle le système est en veille. .TP \fBCLOCK_PROCESS_CPUTIME_ID\fP .\" There is some trickery between glibc and the kernel .\" to deal with the CLOCK_PROCESS_CPUTIME_ID case. Une horloge configurable par processus mesurant le temps processeur consommé par tous les threads du processus. .PP .\" Sleeping against CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM .\" is also possible (tested), with CAP_WAKE_ALARM, but I'm not .\" sure if this is useful or needs to be documented. Voir \fBclock_getres\fP(2) pour plus de détails sur ces horloges. En outre, les identifiants de l'horloge du processeur renvoyés par \fBclock_getcpuclockid\fP(3) et \fBpthread_getcpuclockid\fP(3) peuvent aussi être passés en tant que \fIclockid\fP. .PP Si \fIflags\fP vaut \fB0\fP, la valeur indiquée dans \fIrequest\fP est interprétée comme une durée relative à la valeur actuelle de l'horloge indiquée dans \fIclockid\fP. .PP Si \fIflags\fP vaut \fBTIMER_ABSTIME\fP, \fIrequest\fP est interprété comme un temps absolu tel qu'il est mesuré par l'horloge \fIclockid\fP. Si \fIrequest\fP est inférieur ou égal à la valeur actuelle de l'horloge, \fBclock_nanosleep\fP() renvoie immédiatement sans suspendre le thread appelant. .PP \fBclock_nanosleep\fP() suspend l'exécution du thread appelant jusqu'à ce que soit le temps indiqué dans \fIrequest\fP se soit écoulé, soit un signal a été délivré provoquant l'appel d'un gestionnaire de signal ou la fin du processus. .PP Si l'appel a été interrompu par un gestionnaire de signal, \fBclock_nanosleep\fP() échoue et renseigne \fIerrno\fP avec \fBEINTR\fP. De plus, si \fIremain\fP n'est pas NULL et si \fIflags\fP n'est pas \fBTIMER_ABSTIME\fP, il renvoie dans \fIremain\fP le temps de sommeil non consommé. Cette valeur peut être ensuite utilisée pour rappeler \fBclock_nanosleep\fP() et achever un sommeil (relatif). .SH "VALEUR RENVOYÉE" Après un sommeil complet de la durée souhaitée, \fBclock_nanosleep\fP() renvoie \fB0\fP. Si l'appel système est interrompu par un gestionnaire de signal ou rencontre une erreur, il renvoie un des codes d'erreur positifs listés dans ERREURS. .SH ERREURS .TP \fBEFAULT\fP \fIrequest\fP ou \fIremain\fP n'indique pas une adresse valable. .TP \fBEINTR\fP Le sommeil a été interrompu par un gestionnaire de signal\ ; voir \fBsignal\fP(7). .TP \fBEINVAL\fP La valeur du champ \fItv_nsec\fP n'est pas dans l'intervalle 0 à 999\ 999\ 999 ou \fItv_sec\fP est négatif. .TP \fBEINVAL\fP \fIclockid\fP n'est pas valable. (\fBCLOCK_THREAD_CPUTIME_ID\fP n'est pas une valeur permise pour \fIclockid\fP.) .TP \fBENOTSUP\fP Le noyau ne prend pas en charge le sommeil avec cette \fIclockid\fP. .SH VERSIONS L'appel système \fBclock_nanosleep\fP() a été introduit dans Linux\ 2.6. Sa prise en charge est disponible depuis la glibc\ 2.1. .SH STANDARDS POSIX.1\-2001, POSIX.1\-2008. .SH NOTES Si la durée indiquée dans \fIrequest\fP n'est pas un multiple exact de la granularité de l'horloge sous\-jacente (consultez \fBtime\fP(7)), la durée sera alors arrondie au multiple supérieur. De plus, lorsque le sommeil sera achevé, il y a toujours un délai avant lequel le processeur redevienne libre pour exécuter le thread appelant. .PP L'utilisation d'une temporisation absolue est utile pour prévenir les problèmes de dérive de temps du type de ceux décrits dans \fBnanosleep\fP(2). (De tels problèmes sont exacerbés dans les programmes qui essaient de relancer un sommeil relatif interrompu de manière répétitive par des signaux.) Pour réaliser un sommeil qui s'affranchisse de ces problèmes, appelez \fBclock_gettime\fP(2) pour l'horloge souhaitée, ajoutez la durée voulue à la valeur de temps renvoyée, appelez ensuite \fBclock_nanosleep\fP() avec l'attribut \fBTIMER_ABSTIME\fP. .PP \fBclock_nanosleep\fP() n'est jamais relancé après avoir été interrompu par un gestionnaire de signal, que l'on ait ou non utilisé l'attribut \fBSA_RESTART\fP de \fBsigaction\fP(2). .PP L'argument \fIremain\fP n'est pas utilisé et n'est pas nécessaire lorsque \fIflags\fP vaut \fBTIMER_ABSTIME\fP. (Un sommeil absolu peut être relancé en utilisant le même argument \fIrequest\fP.) .PP POSIX.1 précise que \fBclock_nanosleep\fP() n'a aucun effet sur les dispositions de signaux ou sur le masque de signaux. .PP POSIX.1 précise qu'après avoir modifié la valeur de l'horloge \fBCLOCK_REALTIME\fP avec \fBclock_settime\fP(2), la nouvelle valeur de l'horloge doit être utilisée pour déterminer l'heure à laquelle un thread bloqué avec un appel \fBclock_nanosleep\fP() absolu se réveillera\ ; si la valeur de la nouvelle horloge dépasse la durée du sommeil, l'appel système, \fBclock_nanosleep\fP() renvoie immédiatement. .PP POSIX.1 précise que modifier la valeur de l'horloge \fBCLOCK_REALTIME\fP avec \fBclock_settime\fP(2) n'a pas d'effet sur un thread bloqué par un appel \fBclock_nanosleep\fP() relatif. .SH "VOIR AUSSI" \fBclock_getres\fP(2), \fBnanosleep\fP(2), \fBrestart_syscall\fP(2), \fBtimer_create\fP(2), \fBsleep\fP(3), \fBtimespec\fP(3), \fBusleep\fP(3), \fBtime\fP(7) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Philippe MENGUAL . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .