File: semctl.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 (321 lines) | stat: -rw-r--r-- 7,703 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
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
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
.\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it)
.\"
.\" 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 Tue Oct 22 17:53:56 1996 by Eric S. Raymond <esr@thyrsus.com>
.\" Translated 26 Jan 1997 by Vicente Pastor Gomez <VPASTORG@santandersupernet.com , vicpastor@hotmail.com>
.TH SEMCTL 2 "1 Noviembre, 1993" "Linux 0.99.13" "Manual del Programador Linux" 
.SH NOMBRE
semctl \- operaciones de control de semforos
.SH SINOPSIS
.nf
.B
# include <sys/types.h>
.B
# include <sys/ipc.h>
.B
# include <sys/sem.h>
.fi
.sp
.BI "int semctl ( int " semid ,
.BI "int " semnun ,
.BI "int " cmd ,
.BI "union semun " arg " )"
.SH DESCRIPCIN
La funcin realiza la operacin de control especificada por
.I cmd
en el conjunto de semforos (o en el semforo
.IR sumun -avo
del grupo) identificado por
.IR semid .
El primer semforo del conjunto est indicado por el valor
.B 0
para
.IR semun .
.PP
El tipo de
.I arg
es la unin
.sp
.B
union semun {
.br
.B
        int val;
/* usado para SETVAL solo*/
.br
.B
        struct semid_ds *buf;
/* para IPC_STAT e IPC_SET */
.br
.B
        ushort *array;       
/* usado para GETALL y SETALL */
.br
.B
};
.sp
Valores vlidos para
.I cmd
son
.TP 12
.B IPC_STAT
Copiar informacin de la estructura de datos del conjunto de semforos
en la estructura apuntada por
.IB arg .buf .
El argumento
.I semnum
es ignorado.
El proceso que realiza la llamada debe tener privilegios de acceso de lectura en el conjunto de semforos.
.TP
.B IPC_SET
Escribir los valores de algunos miembros de la estructura
.B semid_ds
apuntada por
.IB arg .buf
a la estructura de datos del conjunto de semforos, actualizando tambien su miembro
.B sem_ctime
.
Los miembros de la estructura provista por el usuario
.B "struct semid_ds"
a los que apunta
.IB arg .buf
son
.nf
.sp
.ft B
        sem_perm.uid
        sem_perm.gid
        sem_perm.mode   \fR/* solo los 9 bits ms bajos */\fP
.fi
.ft R
.sp
El ID de usuario efectivo del proceso que realiza la llamada debe ser o
de super\-usuario, o el del creador o propietario del conjunto de semforos.
El argumento
.I semnum
es ignorado.
.TP
.B IPC_RMID
Borrar inmediatamente el conjunto de semforos y sus estructuras de datos,
despertando todos los procesos en espera (devuelve un error, y
.B errno
puesto a
.BR EIDRM ).
El ID de usuario efectivo del proceso que realiza la llamada debe ser o
de super\-usuario, o el del creador o propietario del conjunto de semforos.
El argumento
.I semnum
es ignorado.
.TP
.B GETALL
Devuelve
.B semval
para todos los semforos del conjunto, en
.IB arg .array .
El argumento
.I semnum
es ignorado.
El proceso que realiza la llamada ha de tener privilegios de lectura en el conjunto de semforos.
.TP
.B GETNCNT
La llamada al sistema devuelve el valor de
.B semncnt
para el 
.IR semno \-avo
semforo del conjunto
(p.ej. el nmero de procesos esperando que aumente
.B semval
para el
.IR semno \-avo
semforo del conjunto).
El proceso que realiza la llamada ha de tener privilegios de lectura en el conjunto de semforos.
.TP
.B GETPID
La llamada al sistema devuelve el valor de
.B sempid
para el
.IR semno \-avo
semforo del conjunto
(p.ej. el pid del proceso que ejecut la ltima llamada
.B semop
para el
.IR semno \-avo
semforo del conjunto).
El proceso que realiza la llamada ha de tener privilegios de lectura en el conjunto de semforos.
.TP
.B GETVAL
La llamada al sistema devuelve el valor de
.B semval
para el
.IR semno \-avo
semforo del conjunto.
El proceso que realiza la llamada ha de tener privilegios de lectura en el conjunto de semforos.
.TP
.B GETZCNT
La llamada al sistema devuelve el valor de
.B semzcnt
para el
.IR semno \-avo
semforo del conjunto
(p.ej. el nmero de procesos que esperan que
.B semval
del
.IR semno \-avo
semforo del conjunto se ponga a 0).
El proceso que realiza la llamada ha de tener privilegios de lectura en el conjunto de semforos.
.TP
.B SETALL
Poner
.B semval
para todos los semforos del conjunto usando
.IB arg .array ,
acutalizando tambin el miembro
.B sem_ctime
de la estructura
.B semid_ds
asociada al conjunto.
Los registros de anulacin son limpiados, para los semforos cambiados, en todos los procesos.
Los procesos que estn durmiendo en la cola de espera son despertados si algn
.B semval
se pone a 0 o se incrementa.
El argumento
.I semnum
es ignorado.
El proceso que realiza la llamada ha de tener privilegios de modificacin en el conjunto de semforos.
.TP
.B SETVAL
Poner el valor de
.B semval
a
.IB arg .val
para el
.IR semnum \-avo
semforo del conjunto, actualizando tambin el miembro
.B sem_ctime
de la estructura
.B semid_ds
asociada al conjunto.
El registro de anulacin es limpiado, para el semforo alterado, en todos
los procesos.
Los procesos que estn durmiendo en la cola de espera son despertados si
.B semval
se pone a 0 o se incrementa.
El proceso que realiza la llamada ha de tener privilegios de escritura en el conjunto de semforos.
.SH "VALOR REGRESADO"
Si falla, la llamada del sistema devuelve
.B \-1
, mientras
.B errno
indica el error.
De otro modo, la llamada al sistema devuelve un
valor no negativo, dependiendo de
.I cmd
como sigue:
.TP 11
.B GETNCNT
el valor de
.BR semncnt .
.TP
.B GETPID
el valor de
.BR sempid .
.TP
.B GETVAL
el valor de
.BR semval .
.TP
.B GETZCNT
el valor de
.BR semzcnt .
.SH ERRORES
Para un retorno fallido,
.B errno
tendr uno de los siguientes valores:
.TP 11
.B EACCESS
El proceso que reliza la llamada no tiene los permisos necesarios para ejecutar
.IR cmd .
.TP
.B EFAULT
La direccin a la que apunta
.IB arg .buf
o
.IB arg .array
no es accesible.
.TP
.B EIDRM
El conjunto de semforos se borr.
.TP
.B EINVAL
Valor no vlido para
.I cmd
o
.IR semid .
.TP
.B EPERM
El argumento
.I cmd
tiene valor
.B IPC_SET
o
.B IPC_RMID
pero el user\-ID del proceso que realiza la llamada no tiene suficientes privilegios para ejecutar el comando.
.TP
.B ERANGE
El argumento
.I cmd
tiene el valor
.B SETALL
o
.B SETVAL
y el valor al que ha de ser puesto
.B semval
(para algn semforo del conjunto) es menor que 0 o mayor que el valor
.BR SEMVMX
de la implementacin.
.SH NOTAS
Las llamadas de control
.BR IPC_INFO ,
.BR SEM_STAT
y
.B SEM_INFO
son utilizadas por el programa
.BR ipcs (8)
para proveer informacin sobre recursos asignados.
En el futuro pueden ser modificadas segn se necesite, o llevadas al interfaz del sistema de ficheros proc.
.PP
El siguiente lmite de sistema para conjuntos de semforos afecta a la llamada
.B semctl
:
.TP 11
.B SEMVMX
Valor mximo para
.BR semval :
depende de la implementacin (32767).
.SH "CONFORMA CON"
SVr4, SVID.  SVr4 documenta ms condiciones de error EINVAL y EOVERFLOW.
.SH "VASE TAMBIN"
.BR ipc (5),
.BR shmget (2),
.BR shmat (2),
.BR shmdt (2).