Provided by:
manpages-es_1.55-10_all 
NOMBRE
flockfile, ftrylockfile, funlockfile - bloqueo sobre el objeto FILE de
stdio
SINOPSIS
#include <stdio.h>
void flockfile(FILE *filehandle);
int ftrylockfile(FILE *filehandle);
void funlockfile(FILE *filehandle);
DESCRIPCI'ON
Las funciones stdio son hilo-seguro. Esto se consigue asignando a cada
objeto FILE una cuenta de bloqueos (lockcount) y (si la cuenta es
distinta de cero) un hilo que actua de propietario. Por cada llamada a
la biblioteca, estas funciones esperan hasta que el objeto FILE deje de
estar bloqueado por algun otro hilo diferente, despues lo bloquean,
realizan la peticion de E/S solicitada, y desbloquean el objeto de
nuevo.
(Nota: este bloqueo no tiene nada que ver con el bloqueo realizado por
funciones como flock(2) y lockf(3).)
Todo esto es invisible al programador de C, pero puede haber dos
razones para querer un control mas detallado. Por una parte, una serie
de acciones de E/S de un hilo pueden ir juntas, y no deberian ser
interrumpidas por la E/S de ningun otro hilo. Por otra parte, la
sobrecarga del bloqueo deberia evitarse para lograr una mayor
eficiencia.
Para este proposito, un hilo puede bloquear explicitamente el objeto
FILE, realizar su serie de acciones de E/S, y despues desbloquearlo.
Esto impide que otros hilos lo interrumpan. Si la razon para hacer esto
es lograr una mayor eficiencia, se debe realizar la E/S con las
versiones no-bloqueantes de las funciones stdio: con getc_unlocked() y
putc_unlocked() en lugar de getc() y putc().
La funcion flockfile() espera a que *filehandle deje de estar bloqueado
por otro hilo, hace al hilo actual propietario de *filehandle, e
incrementa la cuenta de bloqueos.
La funcion funlockfile() decrementa la cuenta de bloqueos.
La funcion ftrylockfile() es una version no-bloqueante de flockfile().
No hace nada en el caso de que otro hilo sea el propietario de
*filehandle, en otro caso obtiene la propiedad e incrementa la cuenta
de bloqueos.
VALOR DEVUELTO
La funcion ftrylockfile() devuelve cero cuando tiene exito (obtuvo el
bloqueo), y un valor distinto de cero en caso de fallo.
ERRORES
Ninguno.
DISPONIBILIDAD
Estas funciones estan disponibles cuando _POSIX_THREAD_SAFE_FUNCTIONS
esta definida. Estan presentes en libc desde libc 5.1.1 y en glibc
desde glibc 2.0.
CONFORME A
POSIX.1
V'EASE TAMBI'EN
unlocked_stdio(3)
18 octubre 2001 LOCKFILE(3)