Provided by: manpages-es_1.55-8_all bug

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ÓN

       Las funciones stdio son hilo-seguro. Ésto se consigue asignando a  cada
       objeto  FILE  una  cuenta  de  bloqueos  (lockcount) y (si la cuenta es
       distinta de cero) un hilo que actúa de propietario.  Por cada llamada a
       la biblioteca, estas funciones esperan hasta que el objeto FILE deje de
       estar bloqueado por algún otro hilo  diferente,  después  lo  bloquean,
       realizan  la  petición  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  ésto  es  invisible  al  programador  de  C, pero puede haber dos
       razones para querer un control más detallado. Por una parte, una  serie
       de  acciones  de  E/S  de  un  hilo pueden ir juntas, y no deberían ser
       interrumpidas por la E/S de ningún  otro  hilo.   Por  otra  parte,  la
       sobrecarga   del   bloqueo  debería  evitarse  para  lograr  una  mayor
       eficiencia.

       Para este propósito, un hilo puede bloquear  explícitamente  el  objeto
       FILE,  realizar  su  serie de acciones de E/S, y después desbloquearlo.
       Ésto impide que otros hilos lo interrumpan. Si la razón 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 función 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 función funlockfile() decrementa la cuenta de bloqueos.

       La  función ftrylockfile() es una versión 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 función ftrylockfile() devuelve cero cuando tiene éxito  (obtuvo  el
       bloqueo), y un valor distinto de cero en caso de fallo.

ERRORES

       Ninguno.

DISPONIBILIDAD

       Estas  funciones  están disponibles cuando _POSIX_THREAD_SAFE_FUNCTIONS
       está definida. Están presentes en libc desde  libc  5.1.1  y  en  glibc
       desde glibc 2.0.

CONFORME A

       POSIX.1

VÉASE TAMBIÉN

       unlocked_stdio(3)

                                18 octubre 2001                    LOCKFILE(3)