File: nanosleep.2

package info (click to toggle)
manpages-es 0.4a-2
  • links: PTS
  • area: main
  • in suites: hamm, slink
  • size: 3,592 kB
  • ctags: 3
  • sloc: sh: 59; makefile: 42
file content (141 lines) | stat: -rw-r--r-- 4,298 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
.\" 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
.\"
.\" Translated into Spanish Wed Jan 14 1998 by Gerardo Aburruzaga
.\" Garca <gerardo.aburruzaga@uca.es>
.\"
.TH NANOSLEEP 2 "Mircoles 14 de Enero de 1998" "Linux 2.0.30" "Manual del Programador Linux"
.SH NOMBRE
nanosleep \- hace una pausa en la ejecucin durante un tiempo especificado
.SH SINOPSIS
.B #include <time.h>
.sp
\fBint nanosleep(const struct timespec *\fIreq\fB, struct timespec *\fIrem\fB);
.fi
.SH DESCRIPCIN
.B nanosleep
retarda la ejecucin del programa durante al menos el tiempo
especificado en
.IR *req .
La funcin puede regresar antes si se ha mandado una seal al
proceso. En este caso, devuelve \-1, pone \fIerrno\fP a
.BR EINTR ,
y escribe el tiempo restante en la estructura apuntada por
.IR rem
a menos que
.I rem
sea 
.BR NULL .
El valor de
.I *rem
puede emplearse para llamar a
.B nanosleep
de nuevo y completar la pausa especificada.

La estructura
.I timespec
se emplea para especificar intervalos de tiempo con precisin de
nanosegundo. Se especifica en
.I <time.h>
y tiene la forma
.sp
.RS
.nf
.ne 12
.ta 8n 16n 32n
struct timespec
{
	time_t	tv_sec;			/* segundos */
	long	tv_nsec;		/* nanosegundos */
};
.ta
.fi
.RE
.PP
El valor del campo de nanosegundos debe estar en el rango de 0 a 999 999 999.

Comparado con
.BR sleep  (3)
y
.BR usleep (3),
.B nanosleep
tiene la ventaja de no afectar a ninguna seal, est normalizado por
POSIX, proporciona una resolucin del temporizador mayor, y permite
que un `sleep' que ha sido interrumpido por una seal contine ms
fcilmente. 
.SH ERRORES
En caso de un error o excepcin, la llamada al sistema
.B nanosleep
devuelve \-1 en vez de 0 y pone en
.I errno
uno de los valores siguientes:
.TP 0.8i
.B EINTR
La pausa ha sido interrumpida por una seal no bloqueante que ha sido
mandada al proceso. El tiempo restante de sueo ha sido escrito en
*\fIrem\fP de modo que el proceso pueda llamar fcilmente de nuevo a
.B nanosleep
para continuar as con la pausa.
.TP
.B EINVAL
El valor en el campo
.I tv_nsec
no estaba en el rango de 0 a 999\ 999\ 999 
.I tv_sec
era un nmero negativo.
.SH BUGS
La implementacin actual de
.B nanosleep
est basada en el mecanismo normal del temporizador del kernel, que
tiene una resolucin de 1/\fIHZ\fP\ s (i.e., 10\ ms en Linux/i386 
y 1\ ms en Linux/Alpha).
Por lo tanto,
.B nanosleep
hace una pausa siempre de al menos el tiempo especificado, empero
puede tardar hasta 10 ms ms hasta que el proceso sea de nuevo
ejecutable. Por la misma razn, el valor devuelto en *\fIrem\fP en el
caso de una seal enviada, se redondea normalmente al siguiente
mltiplo ms grande de 1/\fIHZ\fP\ s.

Como algunas aplicaciones requieren pausas mucho ms precisas (p. ej.,
para controlar algn hardware que requiere respuestas en tiempo real),
.B nanosleep
tambin es capaz de pausas cortas de alta precisin. Si el proceso se
planifica bajo una poltica de tiempo real como
.I SCHED_FIFO
o
.IR SCHED_RR ,
entonces se harn pausas de hasta 2\ ms como las esperas
ocupadas con precisin de microsegundo.
.SH "CONFORME CON"
POSIX.1b (antes, POSIX.4).
.SH CONSULTE TAMBIN
.BR sleep (3),
.BR usleep (3),
.BR sched_setscheduler (2),
y
.BR timer_create (2).