File: nanosleep.2

package info (click to toggle)
manpages-fr 0.8-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 5,760 kB
  • ctags: 4
  • sloc: makefile: 57; sh: 8
file content (146 lines) | stat: -rw-r--r-- 4,226 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" Copyright (C) Markus Kuhn, 1996
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
.\" USA.
.\"
.\" 1996-04-10  Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
.\"             First version written
.\"
.\" Traduction 14/10/1996 par Christophe Blaess (ccb@club-internet.fr)
.\" Mise a Jour 8/04/97
.TH NANOSLEEP 2 "8 Avril 1997" "Linux" "Manuel du programmeur Linux"
.SH NOM
nanosleep \- Arrter l'excution pendant une dure donne.
.SH SYNOPSIS
.B #include <time.h>
.sp
\fBint nanosleep(const struct timespec *\fIreq\fB, struct timespec *\fIrem\fB);
.fi
.SH DESCRIPTION
.B nanosleep
suspend l'excution du programme en cours pour une dure valant
au moins
.IR *req .
Cette fonction peut se terminer plus tt que prvu si un signal a
t reu par le processus. Dans ce cas, elle renvoie \-1, 
positionne \fIerrno\fR  la valeur
.BR EINTR ,
et inscrit le temps restant dans la structure pointe par
.IR rem
a moins que
.I rem
soit
.BR NULL .
La valeur de
.I *rem
peut tre utilise pour rappeler  nouveau
.B nanosleep
afin de terminer la pause.

La structure
.I timespec
est utilise pour indiquer l'intervalle de temps en nano-secondes.
Elle est dfinie dans 
.I <time.h>
et a la forme suivante
.sp
.RS
.nf
.ne 12
.ta 8n 16n 32n
struct timespec
{
	time_t	tv_sec;			/* secondes */
	long	tv_nsec;		/* nano-secondes */
};
.ta
.fi
.RE
.PP
La valeur du champ nano-seconde doit tre dans l'intervalle 0  999 999 999.

Par rapport 
.BR sleep  (3)
et
.BR usleep (3),
.B nanosleep
a l'avantage de n'affecter aucun signal, d'tre au standard POSIX,
de fournir une meilleure rsolution, et de permettre de continuer facilement
un sommeil interrompu par un signal.
.SH ERREURS
En cas d'erreur ou d'interruption, l'appel systme
.B nanosleep
renvoie \-1 et place dans
.I errno
une des valeurs suivantes :
.TP 0.8i
.B EINTR
La pause a t interrompue par un signal non-bloqu dlivr au
processus. Le temps restant de sommeil a t inscrit dans 
*\fIrem\fR pour que le processus puisse terminer facilement son
sommeil.
.TP
.B EINVAL
La valeur du champ
.I tv_nsec
n'est pas dans l'intervalle 0  999\ 999\ 999 ou
.I tv_sec
est ngatif.
.SH BUGS
L'implmentation actuelle de
.B nanosleep
est construite sur le mcanisme de temporisation du noyau, qui
dispose d'une rsolution valant 1/\fIHZ\fR\ s 
(10\ ms sur Linux/i386 et 1\ ms sur Linux/Alpha).
Ainsi,
.B nanosleep
dormira toujours pour une dure au moins egale au temps spcifi, 
mais il peut prendre jusqu' 10 ms de plus (i386) avant de faire
redmarrer le processus.
Pour la mme raison, la valeur retourne dans *\fIrem\fR en cas 
d'interruption par un signal est arrondie au multiple suprieur
de 1/\fIHZ\fR\ s.

Certaines applications ncessitant des pauses plus prcises
(par exemple pour le contrle de priphriques matriels
avec un dlai critique),
.B nanosleep
peut aussi offrir des pauses avec une prcision plus leve.
Si le processus est mis sous le contrle d'un ordonnanceur
temps rel comme
.I SCHED_FIFO
ou
.IR SCHED_RR ,
les pauses jusqu'a 2\ ms seront effectues avec des boucles
d'une prcision de l'ordre de la micro-seconde.

.SH CONFORMIT
POSIX.1b (anciennement POSIX.4).
.SH "VOIR AUSSI"
.BR sleep (3),
.BR usleep (3),
.BR sched_setscheduler (2),
et
.BR timer_create (2).

.SH TRADUCTION
Christophe Blaess, 1997.