File: flock.2

package info (click to toggle)
manpages-es 1.55-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,472 kB
  • ctags: 6
  • sloc: sh: 1,349; makefile: 63
file content (197 lines) | stat: -rw-r--r-- 5,905 bytes parent folder | download | duplicates (4)
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) and 
.\" 2002 Michael Kerrisk
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\" 
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\" 
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Modified Fri Jan 31 16:26:07 1997 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified Fri Dec 11 17:57:27 1998 by Jamie Lokier <jamie@imbolc.ucc.ie>
.\" Modified 24 Apr 2002 by Michael Kerrisk <mtk16@ext.cannterbury.ac.nz>
.\"	Substantial rewrites and additions
.\" Translation fixed on Tue Apr 28 16:34:06 CEST 1998 by Gerardo
.\" Aburruzaga García <gerardo.aburruzaga@uca.es>
.\" Translation revised on Sun Apr 4 1999 by Juan Piernas <piernas@ditec.um.es>
.\" Revisado por Miguel Pérez Ibars <mpi79470@alu.um.es> el 11-noviembre-2004
.\"
.TH FLOCK 2 "24 abril 2002" "Linux" "Manual del Programador de Linux"
.SH NOMBRE 
flock \- impone o elimina un candado de recomendación en un fichero abierto.
.SH SINOPSIS
.B #include <sys/file.h>
.sp
.BR "int flock(int " fd ", int " operation );
.SH DESCRIPCIÓN
Impone o elimina un candado de recomendación (advisory lock) sobre el fichero
abierto especificado por
.IR fd .
El parámetro
.I operation
puede tener uno de los siguientes valores:
.RS
.sp
.TP 1.0i
.B LOCK_SH
Pone un candado compartido.  
Más de un proceso puede tener un candado compartido para un fichero en un 
momento dado.
.TP
.B LOCK_EX
Pone un candado exclusivo.  
Solamente un proceso puede tener un candado exclusivo para un fichero en un 
momento dado.
.TP
LOCK_UN
Elimina un candado existente mantenido por este proceso.
.sp
.RE

Una llamada a
.BR flock ()
puede bloquearse si otro proceso mantiene un candado incompatible.
Para hacer una solicitud no bloqueante, incluya
.B LOCK_NB
(mediante operaciones
.IR OR)
con cualquiera de las operaciones de arriba.

Un fichero no puede tener simultaneamente candados compartido y exclusivo.

Los candados creados por
.BR flock ()
se asocian con un fichero, o, más concretamente, con una entrada de la tabla 
de ficheros abiertos. Esto significa que los descriptores de fichero duplicados
(creados con, por ejemplo,
.BR fork "(2) o " dup (2))
hacen referencia al mismo candado, y este candado puede ser modificado
o liberado usando cualquiera de estos descriptores.
Además, el candado es bloqueado bien por una operación
.B LOCK_UN
explícita sobre cualquiera de estos descriptores duplicados, o cuando
todos estos descriptores han sido cerrados.

Un proceso puede tener solamente un tipo de candado (compartido o exclusivo)
sobre un fichero.
Las llamadas posteriores a
.BR flock ()
sobre un fichero ya bloqueado convertirán un candado existente al nuevo
modo de bloqueo.

Los candados creados con
.BR flock ()
se preservan tras un
.BR execve (2).

Un candado compartido o exclusivo puede ponerse sobre un fichero sin importar
el modo en el que fue abierto dicho fichero.
.SH "VALOR DEVUELTO"
En caso de éxito, cero, En caso de error, \-1 , y  
se pone en
.I errno
un código apropiado.
.SH ERRORES
.TP
.B EWOULDBLOCK
El fichero está encadenado  y la bandera
.B LOCK_NB
ha sido elegida.   
TP
.B EBADF
.I fd
no es un descriptor de fichero abierto.
.TP
.B EINTR
Mientras se esperaba por adquirir un candado, la llamada fue
interrumpida por la notificación de una señal atrapada por un manejador.
.TP
.B EINVAL
.I operation
no es válido.
.TP
.B ENOLCK
El núcleo se quedó sin memoria para almacenar registros de candados.
.\".SH NOTAS
.\"En linux,    
.\".B flock
.\"está implementado como una llamada a
.\".BR fcntl .
.\"Por favor vease
.\".BR fcntl (2)
.\"para más detalles sobre errores.
.SH CONFORME A
4.4BSD (la llamada al sistema
.BR flock (2)
apareció por primera vez en 4.2BSD).
Una versión de 
.BR flock (2),
posiblemente implementada en términos de
.BR fcntl (2),
aparece en la mayoría de Unix's.
.SH OBSERVACIONES
.BR flock (2)
no impone candados en ficheros sobre NFS. Use
.BR fcntl (2)
en su lugar: funcionará sobre NFS, dada una versión suficientemente reciente
de Linux y un servidor que soporte candados.
.PP
Desde la versión 2.0 del núcleo,
.BR flock (2)
está implementada como una llamada al sistema en lugar
de ser emulada en la biblioteca C de GNU como una llamada a
.BR fcntl (2).
Esto da verdadera semántica BSD:
no hay interacción entre los tipos de candado
colocados por
.BR flock (2)
y
.BR fcntl (2),
y
.BR flock (2)
no detecta interbloqueo.
.PP
.BR flock (2)
coloca candados de recomendación solamente; con los permisos adecuados sobre 
un fichero, un proceso es libre de ignorar el uso de
.BR flock (2)
y realizar E/S sobre el fichero.
.PP
Los candados de 
.BR flock (2)
y
.BR fcntl (2)
tienen semánticas diferentes con respecto a los procesos creados con fork y
con respecto a
.BR dup (2).
.SH "VÉASE TAMBIÉN"
.BR open (2),
.BR close (2),
.BR dup (2),
.BR execve (2),
.BR fcntl (2),
.BR fork (2),
.BR lockf (3)

También están
.I locks.txt
y
.I mandatory.txt
en
.IR /usr/src/linux/Documentation .